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 相关文章推荐
Js四则运算函数代码
Jul 21 Javascript
javascript中call和apply方法浅谈
Sep 27 Javascript
Javascript中Array.prototype.map()详解
Oct 22 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
vue做网页开场视频的实例代码
Oct 20 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 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简单静态页生成过程
2008/03/27 PHP
PHP 身份证号验证函数
2009/05/07 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript的函数
2007/01/31 Javascript
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
应届生服务员求职信
2013/10/31 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
社会实践心得体会范文
2016/01/14 职场文书
python Polars库的使用简介
2021/04/21 Python