直接上代码:注意这块的JSONArray和JSONObject 不要引入org.json.JSONArray 因为它不是网络传输的,当使用它的时候ajax传回前台时是空。
所以要采用网络版的JSONArray和JSONObject struts2 返回json还要采用struts2-json-plugin.jar包
JAVA
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
private JSONArray jsonArray;
/** 用于获得二级的列表 */
public String childLanIds() throws Exception {
Language lan=languageService.getById(parentLanId);
Set<Language> childLans=lan.getChildrenLans();
JSONArray jsonArray=new JSONArray();
for(Language language:childLans){
JSONObject jsonObject=new JSONObject();
jsonObject.put("id", language.getId());
jsonObject.put("name", language.getName());
jsonArray.add(jsonObject);
}
this.jsonArray=jsonArray;
return Action.SUCCESS;
}
public JSONArray getJsonArray() {
return jsonArray;
}
public void setJsonArray(JSONArray jsonArray) {
this.jsonArray = jsonArray;
}
struts.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="server" namespace="/" extends="oa-default">
<!-- 内容管理:版块相关功能 -->
<action name="language_*" class="languageAction" method="{1}">
<result name="list">/WEB-INF/jsp/languageAction/list.jsp</result>
<result name="show">/WEB-INF/jsp/languageAction/show.jsp</result>
<result type="json">
<param name="root">jsonArray</param>
</result>
</action>
<!-- 内容管理:文章相关功能 -->
</package>
<!-- Add packages here -->
</struts>
JSP
所属:
<select class="easyui-combobox" name="parentLanId" id="parentLanId"
style="width:100px;" data-options="valueField:'id',textField:'name',panelHeight:'auto'">
<s:iterator value="#lans">
<option value="${id}">${name}</option>
</s:iterator>
</select>
</div>
<div class="InputContent" style="float: left;width:150px;">
语言:
<input class="easyui-combobox" id="childLanIds" name="childLanIds"
data-options="valueField:'id',textField:'name',
multiple:true,panelHeight:'auto'" style="width:100px;"/>
</div>
<input type="button" value="测试" οnclick="testJson();"/>
JS
$(function(){//设置二级联动
$('#parentLanId').combobox({
onSelect:function(record){
var url='language_childLanIds.action?parentLanId='+record.id;
$('#childLanIds').combobox('clear');
$('#childLanIds').combobox('reload', url);
}
});
});