ajax 是一种客户端与服务器端异步请求的交互技术。相比同步请求,大大提高了信息交互的速度和效率。是当下非常实用和流行的技术。
这里简单的说明 struts2 + jquery + json 下的 信息传递。
1 . 首先创建一个 静态页面 ,然后在 脚本中 写一个 ajax 方法如下:
$.ajax({ type : "get" , url : "ajax/ajax?time="+Math.random() , datatype : "json" , success : function(data){ var json = $.parseJSON(data); mydiv.innerHTML = data.name; } , error : function(data){ alert(data.status); } })
2 . 后台的 action 方法如下:
private String result; public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String execute() throws Exception{ JSONObject jsonObj = new JSONObject(); jsonObj.put("name", "james"); this.setResult(jsonObj.toString()); return SUCCESS; }
3 . 然后在 struts.xml 文件中 配置 action 的 result属性:
<package name="ajax" namespace="/ajax" extends="json-default"> <action name="ajax" class="org.java.action.AjaxAction" method="execute"> <result type="json"> /* 注意 result 的 type 属性为 json */ <param name="excludeNullProperties">true</param> /* 将存入对象中的 null 值过滤掉 */ </result> </action> </package>
其中需要导入一个名叫:struts2-json-plugin-2.3.4.jar 的 jar 包,其中的 package 所扩展的包 ==》json-default 就是从这个 jar 包中 继承的。导入该 jar 包到项目中之后,还将该 jar 包下的 struts-plugin.xml 文件中一个 包名叫 json-default 的包,拷贝到你的 struts.xml 文件中,这样就实现了在 struts2中使用jquery的 ajax 方法,将数据封装成 json 对象进行 前后台的 信息交互了。
json-default 的包信息如下:
<!-- 处理 ajax 请求 json 数据格式的包 --> <package name="json-default" extends="struts-default"> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> </result-types> <interceptors> <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/> <interceptor name="jsonValidation" class="org.apache.struts2.json.JSONValidationInterceptor"/> <!-- Sample JSON validation stack --> <interceptor-stack name="jsonValidationWorkflowStack"> <interceptor-ref name="basicStack"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel</param> </interceptor-ref> <interceptor-ref name="jsonValidation"/> <interceptor-ref name="workflow"/> </interceptor-stack> </interceptors> </package>
时间: 2024-10-17 04:41:34