Javascript获取统一管理的提示语(message)


Posted in Javascript onFebruary 03, 2016

 
项目开发中,各个页面,各个业务操作都会使用提示语。面对这么多message,更好的方式是统一管理这些消息。这样在做国际化的时候进行统一处理也变的方便。

推荐方案使用数据库来管理所有提示语,在项目启动的时候将所有提示语加载到内存或缓存存储。

对于Java中如何实现,没有什么可说的,很简单。那么我们如何在Javascript中使用我们这些提示语呢,下面进行了简单封装,思路清晰,使用简单,供大家参考。

1、创建message.jsp,代码如下:

<%-- <%@ page import="com.xxx.xxx.xxx.xxx.I18nManager" %> --%>
<%@ page language="java" pageEncoding="UTF-8"%>
function I18nManager() {
this.init;
this.messages;
};
I18nManager.prototype = {
get : function(id, args) {
if (!this.init) {
this.messages = new Array();
// 这里可以使用Java代码的方法读取服务端已经缓存好的消息提示语
<%-- this.messages['charset'] = "<%= I18nManager.get(user, "charset") %>"; --%>
<%-- this.messages[''] = "<%= I18nManager.get(user, "") %>"; --%>
<%-- this.messages['M0001'] = "<%= I18nManager.get(user, "M0001") %>"; --%>
<%-- this.messages['M0002'] = "<%= I18nManager.get(user, "M0002") %>"; --%>
<%-- this.messages['M0003'] = "<%= I18nManager.get(user, "M0003") %>"; --%>
<%-- this.messages['M0004'] = "<%= I18nManager.get(user, "M0004") %>"; --%>
<%-- this.messages['M0005'] = "<%= I18nManager.get(user, "M0005") %>"; --%>
<%-- this.messages['M0006'] = "<%= I18nManager.get(user, "M0006") %>"; --%>
<%-- this.messages['ui.title.user'] = "<%= I18nManager.get(user, "ui.title.user") %>"; --%>
<%-- this.messages['ui.title.xview'] = "<%= I18nManager.get(user, "ui.title.xview") %>"; --%>
<%-- this.messages['ui.title.xview.memo'] = "<%= I18nManager.get(user, "ui.title.xview.memo") %>"; --%>
<%-- this.messages['ui.title.xviewPointList'] = "<%= I18nManager.get(user, "ui.title.xviewPointList") %>"; --%>
<%-- this.messages['ui.title.sherpaOracle'] = "<%= I18nManager.get(user, "ui.title.sherpaOracle") %>"; --%>
// 或者可以静态设置一些提示语
this.messages['M0001'] = "操作成功!"; 
this.messages['M0001'] = "操作失败!"; 
this.init = true;
}
var message = this.messages[id];
if (!message && message !== "") {
return id;
}
if (args) {
if (typeof args == "object" && args.length) {
for (var i = 0; i < args.length; i++) {
var pattern = new RegExp("\\{" + i + "\\}", "g"); 
message = message.replace(pattern, args[i]);
}
} else {
message = message.replace(/\{0\}/g, args);
}
}
return message;
},
alert : function(id, args) {
alert(this.get(id, args));
}
};
var i18n = new I18nManager();

代码中的“操作成功” 和 “操作失败” 是我静态写死的值。我们在jsp中使用动态Java代码读取服务端在系统启动后已经全部缓存好的所有消息提示语,并将其动态输出设置到 this.message[‘xxxx'] 中。

2、如何在页面中使用

window.onload = function(){
i18n.alert('M0001');
//alert(i18n.get('M0001'));
}

可以使用我们定义好的 get 和 alert 方法直接使用,当然根据实际需要,我们可以扩展自己的方法。

Javascript 相关文章推荐
javascript+mapbar实现地图定位
Apr 09 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
Sep 29 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
Nov 21 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
jquery 一键复制到剪切板的实例
Sep 20 jQuery
vue中的event bus非父子组件通信解析
Oct 27 Javascript
vue-router项目实战总结篇
Feb 11 Javascript
javascript显示上周、上个月日期的处理方法
Feb 03 #Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
Feb 03 #Javascript
AngularJS向后端ASP.NET API控制器上传文件
Feb 03 #Javascript
javascript DIV实现跟随鼠标移动
Mar 19 #Javascript
javascript鼠标右键菜单自定义效果
Dec 08 #Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 #Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 #Javascript
You might like
example2.php
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
ThinkPHP分页实例
2014/10/15 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Python中的推导式使用详解
2015/06/03 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Django单元测试工具test client使用详解
2019/08/02 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
python中altair可视化库实例用法
2021/01/26 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
党员公开承诺书
2014/03/25 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
学期个人自我总结
2015/02/13 职场文书
化妆品促销活动总结
2015/05/07 职场文书
经典爱情感言
2015/08/03 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
基于Python实现将列表数据生成折线图
2022/03/23 Python