配置:SpringMVC+Hibernate框架
<pre name="code" class="html"><strong>JSP页面:</strong>
<div data-options="region:'west',title:'组织机构树',split:'true'" style="width:200px;overflow: hidden;">
<ul id="orgTree"></ul>
</div>
<strong>JS:</strong>
<pre name="code" class="javascript"><span style="white-space:pre"> </span>$(function(){
//窗口初始化关闭
$('#addOrg').window('close');
//初始化组织机构树
$('#orgTree').tree({
checkbox: false,
url: "orgTreeById.do?pId=0",
loadMsg : '请稍后......',
onClick:function(node){
$.post("orgListT.do",{'pId':node.id},function(data){
//如果选中节点没有下级节点就不刷新----列表刷新
$('#org_list').datagrid('loadData',eval(data));
});
},
onBeforeExpand:function(node){
//异步加载树
$('#orgTree').tree('options').url = "orgTreeById.do?pId="+node.id;//<span style="color:#ff6666;">覆盖树原来的URL,</span>
}
});
});
<strong>JAVA</strong>
<strong>action:</strong>
<pre name="code" class="java">
@RequestMapping ("/orgTreeById.do")//@RequestParam("pId") String mmid,
public void getOrgTreeById(HttpServletRequest request,HttpServletResponse response){
<span style="white-space:pre"> </span>String pId = request.getParameter("pId");
<span style="white-space:pre"> </span>String treeJson = orgService.getOrgTreeById(pId);
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>response.setCharacterEncoding("utf-8");
<span style="white-space:pre"> </span>response.getWriter().write(treeJson);
<span style="white-space:pre"> </span>response.getWriter().flush();
<span style="white-space:pre"> </span>} catch (IOException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
}
<strong>service:</strong>
<pre name="code" class="java"> /**
* 异步加载树
*/
@Override
public String getOrgTreeById(String pId) {
List<Org> orgList = orgDao.getOrgTreeById(pId);
List<Map<String,String>> rootList = new ArrayList<Map<String,String>>();
for(Org org:orgList){
Map<String, String> m = new HashMap<String, String>();
String orgId = org.getOrgId();
m.put("id", orgId);
m.put("text", org.getOrgName());
if(orgDao.hasChildren(orgId)){
m.put("state", "closed");
}else{
m.put("state", "open");
}
rootList.add(m);
}
ObjectMapper objectMapper = new ObjectMapper();
String orgJson = null;
try {
orgJson = objectMapper.writeValueAsString(rootList);// 转换成Json
} catch (Exception e) {
e.printStackTrace();
}
return orgJson;
}
将Java对象转换成json的jar包:jackson-all-1.6.4.jar
</pre><pre name="code" class="html">