【菜单管理】【菜单的crud】

这里写图片描述

分析

  1. 实现当前目录的功能.
    • 响应时候,给页面传递一个菜单对象,表示当前列表的父菜单.
    • 菜单类中有一个属性为parent,代表父菜单对象
    • 提供了一个方法,返回自己+父菜单的集合.
    • 对集合遍历输出即可
  2. 实现查看下级菜单功能.
    • 菜单对象的高级查询中,添加parentId, 对应条件语是o.parent.id=XX,即根据父菜单id查子菜单
    • 在超链接中添加参数,为query.parentId.(当前行菜单的id值)
    • 点击查看下级菜单,就是高级查询出该菜单的子菜单.
  3. 实现添加功能,固定父菜单.
    • 请求input界面时候,添加参数:<s:param name="systemMenu.parent.id" value="systemMenu.id" />
    • 在input的Action方法中,通过systemMenu.parent.id,给systemMenu.parent设值.(菜单对象其他属性为空)
    • 响应时候,input界面中,systemMenu.parent就有值了.

菜单的domain类

  • 属性:父菜单
  • 方法:返回自身+父菜单们的集合.
  • 方法:返回父菜单的名字,若为根目录,就返回根目录
public class SystemMenu extends BaseDomain {
   
    private static final long serialVersionUID = 1L;
    private String name;
    private String url; //连接
    private String sn;     //编号
    private SystemMenu parent;  //父级菜单

    //返回父级菜单的名字
    public String getParentName() {
        return parent==null||parent.getId()==null? "根目录":parent.getName();
    }
    //返回该(菜单→根目录)之间的 菜单对象的集合
    public List<SystemMenu> getAllParents(){
        List<SystemMenu> all=new ArrayList<>();
        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MVC架构的外卖点餐系统中,菜单项可以通过以下方式进行编写: 1. 定义数据模型:定义一个菜单项的数据模型,包含菜单项的名称、价格、描述、图片等信息。 2. 创建控制器:创建一个控制器来处理菜单项的业务逻辑,例如获取菜单项列表、获取单个菜单项信息、添加、修改或删除菜单项等操作。 3. 编写视图:创建一个视图来展示菜单项的信息,可以使用HTML、CSS和JavaScript等技术来设计页面样式和交互效果。 4. 整合模型、视图和控制器:通过MVC框架将数据模型、视图和控制器进行整合,实现菜单项的展示、添加、修改和删除等功能。 例如,菜单项的数据模型可以如下定义: ```java public class MenuItem { private String name; private double price; private String description; private String imageUrl; // getters and setters } ``` 控制器可以如下实现: ```java @Controller @RequestMapping("/menu") public class MenuController { @Autowired private MenuService menuService; @GetMapping("/list") public String getMenuItems(Model model) { List<MenuItem> menuItems = menuService.getMenuItems(); model.addAttribute("menuItems", menuItems); return "menu/list"; } @GetMapping("/{id}") public String getMenuItem(@PathVariable("id") int id, Model model) { MenuItem menuItem = menuService.getMenuItem(id); model.addAttribute("menuItem", menuItem); return "menu/detail"; } // other CRUD operations } ``` 视图可以使用Thymeleaf模板引擎来实现: ```html <!-- menu/list.html --> <ul> <li th:each="menuItem : ${menuItems}"> <img th:src="${menuItem.imageUrl}" alt="" /> <h3 th:text="${menuItem.name}"></h3> <p th:text="${menuItem.description}"></p> <span th:text="${menuItem.price}"></span> </li> </ul> <!-- menu/detail.html --> <img th:src="${menuItem.imageUrl}" alt="" /> <h1 th:text="${menuItem.name}"></h1> <p th:text="${menuItem.description}"></p> <span th:text="${menuItem.price}"></span> ``` 通过MVC框架,我们可以将模型、视图和控制器进行整合,实现菜单项的展示、添加、修改和删除等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值