struts2要想使用json传送数据必须包含几个包
将包导入后
Action:
package cn.itcast.action;
import net.sf.json.JSONObject;
import cn.itcast.modal.UserInfo;
import com.opensymphony.xwork2.ActionSupport;
public class JsonAction extends ActionSupport{
private UserInfo userInfo;
private String result;
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String execute(){
/*userInfo.setPassword("123");
userInfo.setUserName("123");
System.out.println(userInfo.getPassword());
result = JSONObject.fromObject(userInfo).toString();
System.out.println(result);*/
//不用返回字符串,返回字符串反而会导致无法使用对象的调用
return SUCCESS;
}
}
struts.xml配置
<package name="jsonpackage" extends="json-default">
<action name="jsontest" class="cn.itcast.action.JsonAction">
<result type="json">
<!-- <param name="root">result</param> -->
</result>
</action>
</package>
其中的<param name="root">result</param>
是固定写法,这样是只把result的值返回给ajax
javascript:
<script type="text/javascript">
$(document).ready(function(){
$("#getUserInfo").click(function(){
/* $.getJson("jsontest!returnUserInfo.action"); */
$.ajax({
url:"jsontest.action",
data:{
"userInfo.userName":"wangshengyu",
"userInfo.password":"000000",
},
success:function(data){
console.log(data.userInfo.userName);
},
dataType:"json"
});
});
});
</script>