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 相关文章推荐
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
原生JS实现表单checkbook获取已选择的值
Jul 21 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
onmouseover事件和onmouseout事件全面理解
Aug 15 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
微信小程序异步处理详解
Nov 10 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
八种Vue组件间通讯方式合集(推荐)
Aug 18 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 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
竞选学习委员演讲稿
2014/09/01 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
继续教育个人总结
2015/03/03 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
运动员代表致辞
2015/07/29 职场文书
学校运动会感想
2015/08/10 职场文书
工作建议书范文
2019/07/08 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Python闭包的定义和使用方法
2022/04/11 Python