将数据字典中部分公共数据在页面加载时加载到内存中,页面CODE转汉字时直接调用内存中的数据,避免后台多个数据表关联造成资源浪费。
共四步
1. 导入js,编写JS文件,使其支持HashMap
2. jsp调用页面声明变量
3 调用map方法,填充变量
4 通过map.get(...)取值
exp:
1. 编写js文件,相关jsp文件导入该js文件
/**
* 公共代码
* wpx add HashMap
* 增加js框架对HashMap支持
**/
function HashMap()
{
/** Map 大小 **/
var size = 0;
/** 对象 **/
var entry = new Object();
/** 存 **/
this.put = function (key , value)
{
if(!this.containsKey(key))
{
size ++ ;
}
entry[key] = value;
}
/** 取 **/
this.get = function (key)
{
return this.containsKey(key) ? entry[key] : null;
}
/** 删除 **/
this.remove = function ( key )
{
if( this.containsKey(key) && ( delete entry[key] ) )
{
size --;
}
}
/** 是否包含 Key **/
this.containsKey = function ( key )
{
return (key in entry);
}
/** 是否包含 Value **/
this.containsValue = function ( value )
{
for(var prop in entry)
{
if(entry[prop] == value)
{
return true;
}
}
return false;
}
/** 所有 Value **/
this.values = function ()
{
var values = new Array();
for(var prop in entry)
{
values.push(entry[prop]);
}
return values;
}
/** 所有 Key **/
this.keys = function ()
{
var keys = new Array();
for(var prop in entry)
{
keys.push(prop);
}
return keys;
}
/** Map Size **/
this.size = function ()
{
return size;
}
/* 清空 */
this.clear = function ()
{
size = 0;
entry = new Object();
}
}
//获取职位公共代码
function getPositionMap(tempMap,tempUrl){
if(tempUrl=='' || null==tempUrl){
tempUrl = 'user.do?submitFlag=getPosition';
}
//完成情况
$.ajax({
url: tempUrl,
type:'get',
cache:false,
success:function(data){
for(var i=0;i<data.length;i++){
var syscode = data[i].id;
var codeCName = data[i].text;
tempMap.put(syscode,codeCName);
}
}
});
}
2. 声明变量 var positionMap = new HashMap();
3. 变量赋值 getPositionMap(positionMap,url);
4. 调用positionMap.get(...)