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 相关文章推荐
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
javascript 面向对象编程基础 多态
Aug 21 Javascript
JavaScript的面向对象编程基础
Aug 13 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
js跨域资源共享 基础篇
Jul 02 Javascript
关于json字符串与实体之间的严格验证代码
Nov 10 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
vue2 router 动态传参,多个参数的实例
Nov 10 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
JS实现移动端点击按钮复制文本内容
Jul 28 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
微信小程序用户登录和登录态维护的实现
Dec 10 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
PHP Socket 编程
2010/04/09 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
Javascript的比较汇总
2016/07/25 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
python 域名分析工具实现代码
2009/07/15 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python中的lambda表达式用法详解
2016/06/22 Python
详解python之简单主机批量管理工具
2017/01/27 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
在python中画正态分布图像的实例
2019/07/08 Python
django最快程序开发流程详解
2019/07/19 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
python自定义函数def的应用详解
2020/06/03 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
高中生期末评语
2014/01/28 职场文书
高中英语教学反思
2014/02/04 职场文书
接待员岗位责任制
2014/02/10 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
pytorch 如何使用float64训练
2021/05/24 Python
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL