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 相关文章推荐
鼠标经过的文本框textbox变色
May 21 Javascript
基于jquery的blockui插件显示弹出层
Apr 14 Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
Vue.js动态组件解析
Sep 09 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
JavaScript设置名字输入不合法的实现方法
May 23 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
js实现跳一跳小游戏
Jul 31 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使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
简单的php购物车代码
2020/06/05 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
python交互式图形编程实例(三)
2017/11/17 Python
Python中的整除和取模实例
2020/06/03 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
教室标语大全
2014/06/21 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
北京英语导游词
2015/02/12 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
飞越疯人院观后感
2015/06/09 职场文书
高二英语教学反思
2016/03/03 职场文书