/**
* 显示菜单列表ztree(菜单管理)
* @param model
* @return
*/
@RequestMapping(value="/listAllTypeMenu")
public ModelAndView listAllTypeMenu(Model model,String TYPE_MENU_ID)throws Exception{
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
try{
JSONArray arr = JSONArray.fromObject(amazontypeService.listAllTypeMenu("0"));
String json = arr.toString();
//第一个参数是实体类的字段名字,第二个参数是tree固定参数值。.replaceAll("treeurl", "url") 点击跳转链接
json = json.replaceAll("id", "id").replaceAll("pid", "pId").replaceAll("typeName", "name").replaceAll("subTypeMenu", "nodes").replaceAll("hasTypeMenu", "checked");
model.addAttribute("zTreeNodes", json);
mv.addObject("TYPE_MENU_ID",TYPE_MENU_ID);
mv.addObject("pd", pd);
mv.setViewName("amazon/amazontype/typemenu_ztree");
} catch(Exception e){
logger.error(e.toString(), e);
}
return mv;
} /**
* @param MENU_ID
* @throws Exception
*/
public List
listAllTypeMenu(String MENU_ID) throws Exception;
/**
* @param parentId
* @return
* @throws Exception
*/
public List
listSubTypeMenuByParentId(String parentId)throws Exception; /**
* 获取所有菜单并填充每个菜单的子菜单列表(菜单管理)(递归处理)
* @param MENU_ID
* @return
* @throws Exception
*/
@Override
public List
listAllTypeMenu(String MENU_ID) throws Exception {
List
menuList = this.listSubTypeMenuByParentId(MENU_ID);
for(AmazonType menu : menuList){
menu.setTreeurl("menu/toEdit.do?MENU_ID="+menu.getId());
menu.setSubTypeMenu(this.listAllTypeMenu(menu.getId()));
menu.setTarget("treeFrame");
}
return menuList;
}
/**
* 通过ID获取其子一级菜单
* @param parentId
* @return
* @throws Exception
*/
@Override
@SuppressWarnings("unchecked")
public List
listSubTypeMenuByParentId(String parentId) throws Exception { return (List
) dao.findForList("AmazonTypeMapper.listSubTypeMenuByParentId", parentId); } //typeMenu 是mybatis-config.xml配置的,
//TypeMenuResultMap 与resultMap标签中的id对应
select from where "PID" = #{PID} order by TYPE_NAME //实体类,记得get、set public class AmazonType { private String id; private String mid; private String tid; private String typeName; private String pid; private String typePath; private String createTime; private String num; private String level; private String addNum; private List
subTypeMenu;//接收子菜单列表 private String treeurl;//点击子节点跳转url private String target; private boolean hasTypeMenu = false;<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<script type="text/javascript" src="static/js/jquery-1.7.2.js"></script> type="text/css" rel="stylesheet" href="plugins/zTree/2.6/zTreeStyle.css"/> <script type="text/javascript" src="plugins/zTree/2.6/jquery.ztree-2.6.min.js"></script>
<script type="text/javascript"> $(top.hangge()); var zTree; $(document).ready(function(){ var setting = { showLine: true, checkable: false, callback: { /**回调函数的设置,随便写了两个**/ beforeClick: beforeClick, onCheck: onCheck } }; var zn = '${zTreeNodes}'; var zTreeNodes = eval(zn); zTree = $("#leftTree").zTree(setting, zTreeNodes); var nodes = zTree.getNodes(); for (var i = 0; i < nodes.length; i++) { //设置节点展开 zTree.expandNode(nodes[i], true, false, true); } }); //选中获取ID/PID,便于回调接收处理 function beforeClick(treeId, treeNode) { alert("beforeClick"+"ID:"+treeNode.id+"+PID:"+treeNode.pId); } function onCheck(e, treeId, treeNode) { alert("onCheck"+treeId+treeNode); } </script>
springmvc+spring+myibatis 实现ztree 无限菜单
最新推荐文章于 2017-01-18 15:45:36 发布