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 相关文章推荐
json2.js的初步学习与了解
Oct 06 Javascript
关于extjs4如何获取grid修改后的数据的问题
Aug 07 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
May 26 Javascript
用js实现博客打赏功能
Oct 24 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
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递归返回值时出现的问题解决办法
2013/02/19 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
深入理解Django中内置的用户认证
2017/10/06 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python循环实现n的全排列功能
2019/09/16 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
安全教育心得体会
2013/12/29 职场文书
会议室标语
2014/06/21 职场文书
给客户的检讨书
2014/12/21 职场文书
年底个人总结范文
2015/03/10 职场文书
大学班干部竞选稿
2015/11/20 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP