Struts2实现ajax传json
今天遇到了一个struts给前台传json的问题, 找到解决办法, 故记录一下。
首先是pom, 注意, 这里struts和struts-json版本号需要一致
pom.xml:
<properties>
<!-- struts2 -->
<struts.version>2.3.14</struts.version>
</properties>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
然后是action层:
@Controller //如果你是Spring加struts的话,需要写这个注解
@ParentPackage("json-default")
public class OrganizationAction {
//这个是我的一个service层的对象
@Resource(name = "OrganzationService";
private OrganizationService mOrganizationService;
private List<Management> mManagementList;
@Action(
//url
value = "getOrganizationList",
//返回结果
results = {
@Result(
name = "success",
type = "json",
//需要往页面中传的值
params = {"managementList", "${managementList}"}
)
}
)
public String getOrganizationList() {
mManagementList = mOrganizationService.getList("Management");
return "success";
}
}
这里我用的是注解的形式, 没有用xml配置
这里如果写getter setter方法的话, 往页面中传的值会多出来一个, 因为struts会自己去搜索getter setter方法, 然后也被传到request中去
然后是ajax:
function getOrganization() {
//这里的data类似于request, 可以直接使用点把你从后台传的值点出来
$.get("/organization/getOrganizationList", function(data){
var tmp = data.managementList;
$.each(tmp, function (index, obj) {
console.log(obj.managementName)
})
});
}
就酱。