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对象及属性
Feb 13 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
20款超赞的jQuery插件 Web开发人员必备
Feb 26 Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
bootstrap实现tab选项卡切换
Aug 09 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和ACCESS写聊天室(五)
2006/10/09 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
Javascript倒计时代码
2010/08/12 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
node.js基础知识小结
2018/02/26 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
python 不关闭控制台的实现方法
2011/10/23 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
材料成型专业个人求职信范文
2013/09/25 职场文书
工作交流会欢迎词
2014/01/12 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
怀念母亲教学反思
2014/04/28 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
离婚纠纷代理词
2015/05/23 职场文书
修辞手法有哪些?
2019/08/29 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers