首页>代码>spring+spring mvc+mybatis开发的java客户关系管理系统,前端采用easyui编写>/ssm-crm-new - 副本/src/com/crm/controller/MenuController.java
package com.crm.controller; import com.crm.model.SysMenu; import com.crm.model.easyui.DataGrid; import com.crm.model.easyui.Json; import com.crm.model.easyui.PageHelper; import com.crm.service.MenuService; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @Controller @RequestMapping(value = "/menu") public class MenuController extends BaseController { @Resource private MenuService menuService; /** * 跳转到菜单表格页面 * @return */ @RequestMapping(value = "/list", method = RequestMethod.GET) public String list(Model model) { return "menu/list"; } /** * 跳转到资源管理页面 * @return */ @RequestMapping(value = "/listtree", method = RequestMethod.GET) public String listTree(Model model) { return "menu/list_tree"; } /** * 菜单信息-列表 * @return */ @ResponseBody @RequestMapping(value = "/datagrid", method = RequestMethod.POST) public DataGrid datagrid(PageHelper page, SysMenu menu) { DataGrid dg = new DataGrid(); dg.setTotal(menuService.getDatagridTotal(menu)); List<SysMenu> menuList = menuService.datagridMenu(page); dg.setRows(menuList); return dg; } /** * 菜单列表-树 * @return */ @ResponseBody @RequestMapping(value = "/treegrid", method = RequestMethod.POST) public void treegrid(HttpServletResponse response,PageHelper page) { List<SysMenu> menuList = menuService.getAll(page); String json = createTreeJson(menuList); this.write(response, json); } /** * 保存(新增,修改) * @return */ @ResponseBody @RequestMapping(value = "/save", method = RequestMethod.POST) public Json add(SysMenu menu) { Json j = new Json(); try { menuService.saveMenu(menu); j.setSuccess(true); j.setMsg("保存成功!"); j.setObj(menu); } catch (Exception e) { j.setMsg(e.getMessage()); } return j; } /** * 获取当前菜单的所有子菜单 * @param menuId * @param response */ @RequestMapping(value = "/sub") public void getSub(@RequestParam Integer menuId, HttpServletResponse response) { List<SysMenu> subMenu = menuService.listSubMenuByParentid(menuId); JSONArray arr = JSONArray.fromObject(subMenu); PrintWriter out; try { response.setCharacterEncoding("utf-8"); out = response.getWriter(); String json = arr.toString(); out.write(json); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 删除 * @param out */ @ResponseBody @RequestMapping(value = "/del", method = RequestMethod.POST) public Json deleteUser(SysMenu menu) { Json j = new Json(); try { menuService.deleteMenuById(menu.getId()); j.setSuccess(true); j.setMsg("删除成功!"); } catch (Exception e) { j.setMsg(e.getMessage()); } return j; } //////////////////////////////////////////////////////////////////////////////////////////// /** * 创建一颗树,以json字符串形式返回 * @param list 原始数据列表 * @return 树 */ private String createTreeJson(List<SysMenu> list) { JSONArray rootArray = new JSONArray(); for (SysMenu menu : list) { if (menu.getParentid() == 0 ) { //有父节点 JSONObject rootObj = createBranch(list, menu); rootArray.add(rootObj); } } return rootArray.toString(); } /** * 递归创建分支节点Json对象 * @param list 创建树的原始数据 * @param currentNode 当前节点 * @return 当前节点与该节点的子节点json对象 */ private JSONObject createBranch(List<SysMenu> list, SysMenu currentNode) { /* * 将javabean对象解析成为JSON对象 */ JSONObject currentObj = JSONObject.fromObject(currentNode); JSONArray childArray = new JSONArray(); /* * 循环遍历原始数据列表,判断列表中某对象的父id值是否等于当前节点的id值, * 如果相等,进入递归创建新节点的子节点,直至无子节点时,返回节点,并将该 * 节点放入当前节点的子节点列表中 */ for (SysMenu newNode : list) { if ((newNode.getParentid() != 0) && (newNode.getParentid().compareTo(currentNode.getId()) == 0)) { JSONObject childObj = createBranch(list, newNode); childArray.add(childObj); } } /* * 判断当前子节点数组是否为空,不为空将子节点数组加入children字段中 */ if (!childArray.isEmpty()) { currentObj.put("children", childArray); } return currentObj; } }
最近下载更多
sunlea LV20
5月23日
爱丽淇 LV5
3月18日
杨豫川 LV12
2023年5月31日
qq1061521319 LV4
2022年9月15日
wangyang520 LV6
2022年5月2日
crofsun LV8
2022年3月28日
543666826 LV33
2021年11月19日
cyrus6693 LV2
2021年10月25日
lironggang LV38
2021年8月31日
小安同学 LV7
2021年6月20日