springmvc+spring+myibatis 实现ztree 无限菜单

/**
	 * 显示菜单列表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>
    • 评论 3
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值