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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
JS维吉尼亚密码算法实现代码
Nov 09 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
基于node.js之调试器详解
Aug 22 Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
用Javascript实现发送短信验证码间隔功能
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中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python实现的Iou与Giou代码
2020/01/18 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
运动会广播稿150字
2014/02/19 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
工厂搬迁方案
2014/05/11 职场文书
村居抓节水倡议书
2014/05/19 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
详解Spring事件发布与监听机制
2021/06/30 Java/Android
实现一个简单得数据响应系统
2021/11/11 Javascript