Ajax 的核心是 JavaScript 对象 XmlHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest 使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。下面讲述一下通过Ajax读取properties格式资源文件数据。
1、properties文件内容如下:userId=yoodb
name=素文宅
address=中国北京市
2、Jquery实现调用Ajax处理代码,具体如下:$.ajax({
type:'POST',
dataType:'json',
url:'/handleProperties.do',
async:false,
success:function(data){
jsonData = data.jsi18n;//jsi18n是java返回时赋予的名称
jsi18n = eval_r('(' +jsonData+ ')');//转化为json对象(eval_r()函数可计算某个字符串,并执行其中的的 JavaScript 代码)
alert("property is " + jsi18n.name);
},
error:function(event, XMLHttpRequest, ajaxOptions, thrownError){
alert("error");
}
});
3、Java后台处理properties文件,具体代码如下:publicString getResourceBundle(){
ResourceBundle RESOURCE_BUNDLE;
if(contextPvd.getSessionAttr("gLanguage")!=null&&contextPvd.getSessionAttr("gLanguage").equals("1")){
RESOURCE_BUNDLE=ResourceBundle.getBundle("jsi18n",Locale.ENGLISH);
}else{
RESOURCE_BUNDLE =ResourceBundle.getBundle("jsi18n",Locale.CHINA);
}
Set keySet=RESOURCE_BUNDLE.keySet();
//读取资源文件数据拼接成json格式字符串返回
String jsonString = newString();
jsonString+="{";
for(String key:keySet){
jsonString+='"'+key+'"'+":"+'"'+RESOURCE_BUNDLE.getString(key)+'"'+",";
}
//把字符串赋给返回对象
jsonRoot.put("jsi18n",jsonString.substring(0,jsonString.length()-1)+"}");
return SUCCESS;
}
如果其他函数也需要调用返回的结果,需要通过Js把返回值赋给一个全局变量。