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 相关文章推荐
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
解析jquery中的ajax缓存问题
Dec 19 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
js中this的用法实例分析
Jan 10 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
浅谈js中字符和数组一些基本算法题
Aug 15 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
Angular X中使用ngrx的方法详解(附源码)
Jul 10 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
原生javascript实现连连看游戏
Jan 03 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
js 执行上下文和作用域的相关总结
Feb 08 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
jquery异步请求实例代码
2011/06/21 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
Python 文件和输入输出小结
2013/10/09 Python
django2.0扩展用户字段示例
2019/02/13 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python gdal安装与简单使用
2019/08/01 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
品牌推广策划方案
2014/05/28 职场文书
股权转让协议范本
2014/12/07 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
把77A收信机改造成收音机
2022/04/05 无线电