struts2中action返回json时的配置(后面包含跨域时配置)
本例是向数据库中读取一张表,在action中通过json返回前台页面并通过表格显示出来。
struts.xml配置
<package name="default" extends="struts-default,json-default" namespace="/">
<action name="user_*" class="userAction" method="{1}">
<result name="success" type="json">
<param name="root">list</param>
</result>
</action>
</package>
action.java代码
public class UserAction extends ActionSupport {
private UserService userService;
private List<User> list;
public String look() {
list = userService.lookUser();
return "success";
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public UserService getUserService() {
return userService;
}
@Resource(name = "userServiceImpl")
public void setUserService(UserService userService) {
this.userService = userService;
}
}
jsp中ajax接收代码
$.ajax({
type : "post",
url : "user_look",
async : false,
dataTyoe : "json",
success : function(data) {
//测试一下,把json放入表格中
$.each(data, function(i, n) {
var otd=$("<tr><td>"+n.id+"</td><td>"+n.userName+"</td><td>"+n.passWord+"</td><tr>");
$("#tab2").append(otd);
});
},
error : function(xhr, textState) {
alert("数据请求失败");
}
});
jsp中body测试代码
<table id="tab2">
<tr id="tr1">
<th>id</th>
<th>姓名</th>
<th>密码</th>
</tr>
</table>
跨域时
struts.xml中代码
<package name="default" extends="struts-default,json-default" namespace="/">
<action name="user_*" class="userAction" method="{1}">
<result name="success" type="json">
<param name="root">list</param>
<param name="callbackParameter">callback</param>
<param name="noCache">true</param>
</result>
</action>
</package>
ajax中代码
$.ajax({
type: "post",
url: "http://127.0.0.1:8080/my_ssh_easyui2/user_look",
dataType: "jsonp",
jsonp: "callback",
async: false,
success: function(data) {
setTtt(data);
},
error: function(xhr, textState) {
alert("数据请求失败");
}
});