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 EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
Jquery中find与each方法用法实例
Feb 04 Javascript
javascript页面倒计时实例
Jul 25 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
Jan 22 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
Element-ui table中过滤条件变更表格内容的方法
Mar 02 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
JavaScript Blob对象原理及用法详解
Oct 14 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php-fpm配置详解
2014/02/12 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php微信开发之百度天气预报
2016/11/18 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
解决Django no such table: django_session的问题
2020/04/07 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
高中自我鉴定
2013/12/20 职场文书
打架检讨书300字
2014/02/02 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
长江三峡导游词
2015/01/31 职场文书
任命书格式范文
2015/09/22 职场文书