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 相关文章推荐
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
使用JS代码实现点击按钮下载文件
Nov 12 Javascript
JS中的phototype详解
Feb 04 Javascript
Vue.js实例方法之生命周期详解
Jul 03 Javascript
Vue自定义指令详解
Jul 28 Javascript
微信小程序对接七牛云存储的方法
Jul 30 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
angular4+百分比进度显示插件用法示例
May 05 Javascript
JavaScript字符串处理常见操作方法小结
Nov 15 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
Oct 30 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
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/03/22 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
python中xrange和range的区别
2014/05/13 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python的subprocess模块总结
2014/11/07 Python
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python logging日志模块的详解
2017/10/29 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
英国手机零售商:Metrofone
2019/03/18 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
市场营销策划方案
2014/06/11 职场文书
工作求职自荐信
2014/06/13 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS