原博地址:http://blog.csdn.net/vazumi/article/details/7063770
记录一下,当时想用异步加载树的方式,结果发生了错误,无法进入到action里面。看到这篇文档之后,将内容稍加修改,完成了树的加载。
下面是调整了之后的内容:
页面内容:
<script type="text/javascript">
var manager = null;
$(function ()
{
$("#tree1").ligerTree(
{
checkbox:false,
nodeWidth : 250,
onSelect: onSelect
});
manager = $("#tree1").ligerGetTreeManager();
});
function onSelect(note) //这里的异步加载逻辑取决于你的数据库设计,把选中节点的id传回去,传回子节点json然后加载
{
if (note.data.id=="0")
{
if (note.data.children && note.data.children.length == 0)
manager.loadData(note.target, "json/getDsTree?type=dessert"); //加载我的甜品信息
}
else
{
if (note.data.children==undefined)
{
if (note.data.id.toString()!=""&¬e.data.type!="favor") //不要再去加载口味下面的子节点,已经没有子节点了
{
manager.loadData(note.target, "json/getDsTree?type=favor&dsId="+ note.data.id); //加载甜品的口味
}
}
}
}
</script>
action:
public String getDsTree(){
System.out.println("I'm in method getDsTree!!!!!!!!!!!!");
WebApplicationContext webContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(ServletActionContext
.getServletContext());
dessertDao = (DessertDao) webContext.getBean("dessertDao");
if("dessert".equals(type)) {
List<Dessert> dataList = dessertDao.findAll();
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
for (Dessert dessert :dataList) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("text", dessert.getDsName());
hashMap.put("id", dessert.getDsId());
hashMap.put("type", type);
list.add(hashMap);
}
// 获取array类型的json字符串
jsonArray = JSONArray.fromObject(list);
System.out.println("Dessert List: " + jsonArray);
} else if ("favor".equals(type)) {
// 根据传过来的甜品ID查找其口味
Dessert dessert = new Dessert();
dessert = dessertDao.findById(dsId);
List<DsFavor> dataList = dessertDao.findAllFavor(dessert);
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
for (DsFavor dsFavor :dataList) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("text", dsFavor.getFavor());
hashMap.put("id", dsFavor.getDsfId());
hashMap.put("type", type);
list.add(hashMap);
}
// 获取array类型的json字符串
jsonArray = JSONArray.fromObject(list);
System.out.println("Favor Json: " + jsonArray);
}
return SUCCESS;
}
struts.xml 配置:
<package name="json" extends="json-default" namespace="/json">
<action name="getDsTree" class="action.TreeAction" method="getDsTree">
<result type="json">
<param name="root">
jsonArray
</param>
</result>
<result name="input">/ds/ds_tree.jsp</result>
</action>
</package>