struts2与ajax结合
按照惯例:
* 加包
json-lib-2.1.jar、struts2-json-plugin-2.1.8.1.jar
* 在struts2的配置文件中
<package name="userjson" namespace="/" extends="json-default"> <action name="userJSONAction_*" method="{1}" class="cn.itcast.struts2.action.UserAction"> <result type="json" name="jsonString"></result> </action> </package>
利用struts2与ajax结合的时候 extends应该继承json-default,在result中,有一个类型为json,result内容不写,因为返回的是数据。
* 在action中什么样的数据可以返回到json的客户端
* 在action中有属性,并且属性有get方法,这样的属性可以返回到客户端
* 在action中,有getXxx方法,这种情况会构造出一个属性;把get去掉,把剩余的首字母为小写,可以返回到客户端,值为get方法的返回值。
* 在action中,如果有get方法,但这个方法返回的是一个对象,而这个对象和数据没有关系,则这个方法上加上注解(@JSON(Serializable=false)) 就可以忽略该方法。
* 在action中,如果有方法不需要返回到客户端,最好不要以get开头。
struts2-json-plugin-2.1.8.1.jar中的struts-plugin.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="json-default" extends="struts-default">
<!--自定义结果集,处理action中的属性怎么样返回到客户端--> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> </result-types>
<!--拦截器 提交ajax请求时传递的参数与模型驱动和属性驱动连接的桥梁--> <interceptors> <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/> </interceptors> </package> </struts>