Struts2的action注意的地方:
1、Ajax传过来的数据和需要传到后台的数据都要在有get set方法。
2、action的方法,不能有参数
JAVA方法:
public class OrgManagerAction {
public String pId;
public List<Map<String,Object>> treeJson;
public OrgManagerAction(){
}
public String getOrgListBypId(){
OrgManagerServiceImpl orgService = new OrgManagerServiceImpl();
treeJson = orgService.getOrgBypId(pId);
return "success";
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public List<Map<String,Object>> getTreeJson() {
return treeJson;
}
public void setTreeJson(List<Map<String,Object>> treeJson) {
this.treeJson = treeJson;
}
}
Struts.xml配置:
注意事项:
1、如果返回json类型的数据,type="json" (要导入 jarstruts2-json-plugin-2.1.8.1.jar)返回的数据自动转换成json数据
2、 param 中的treeJson 为action中要返回的数据
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="main" extends="json-default" >
<action name="login" class="com.superplan8.core.action.LoginAction" method="login">
<result name="success" type="dispatcher">
/sysmanage/default/MainPage.jsp
</result>
</action>
<action name="getOrgListBypId" class="com.superplan8.core.action.OrgManagerAction" method="getOrgListBypId">
<result name="success" type="json">
<param name="root">treeJson</param>
</result>
</action>
</package>
</struts>
js:jqueryajax的post方法
$.post("getOrgListBypId?pId=0",{'pId':node.id},function(data){
$('#org_list').datagrid('loadData',eval(data));
});
还有一种返回JSON的方法,可以用到SpringMvc中
1、需要导入 jackson-all-1.6.4.jar
2、Java中转JSON数据:
ObjectMapper objectMapper = new ObjectMapper();
String orgJsion = null;
try {
orgJsion = objectMapper.writeValueAsString(rootList);
} catch (Exception e) {
e.printStackTrace();
}