diff --git a/src/main/java/cc/ryanc/halo/model/domain/Menu.java b/src/main/java/cc/ryanc/halo/model/domain/Menu.java index b4850ee7f..aaed95e9e 100644 --- a/src/main/java/cc/ryanc/halo/model/domain/Menu.java +++ b/src/main/java/cc/ryanc/halo/model/domain/Menu.java @@ -6,6 +6,8 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -33,16 +35,19 @@ public class Menu implements Serializable { /** * 菜单名称 */ + @NotEmpty(message = "菜单名称不能为空!") private String menuName; /** * 菜单路径 */ + @NotEmpty(message = "菜单路径不能为空!") private String menuUrl; /** * 排序编号 */ + @NotNull(message = "排序编号不能为空!") private Integer menuSort; /** diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java index 163b33861..d5f05ab85 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java @@ -1,13 +1,19 @@ package cc.ryanc.halo.web.controller.admin; import cc.ryanc.halo.model.domain.Menu; +import cc.ryanc.halo.model.dto.JsonResult; +import cc.ryanc.halo.model.enums.ResultCodeEnum; import cc.ryanc.halo.service.MenuService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; + /** *
* 后台菜单管理控制器 @@ -28,6 +34,7 @@ public class MenuController { * 渲染菜单设置页面 * * @param model model + * * @return 模板路径/admin/admin_menu */ @GetMapping @@ -39,16 +46,23 @@ public class MenuController { * 新增/修改菜单 * * @param menu menu + * * @return 重定向到/admin/menus */ @PostMapping(value = "/save") - public String saveMenu(@ModelAttribute Menu menu) { - try { - menuService.save(menu); - } catch (Exception e) { - log.error("Saving menu failed: {}" + e.getMessage()); + @ResponseBody + public JsonResult saveMenu(@Valid Menu menu, BindingResult result) { + if (result.hasErrors()) { + for (ObjectError error : result.getAllErrors()) { + return new JsonResult(ResultCodeEnum.FAIL.getCode(), error.getDefaultMessage()); + } + } + menu = menuService.save(menu); + if (null != menu) { + return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), "菜单保存成功!"); + } else { + return new JsonResult(ResultCodeEnum.FAIL.getCode(), "菜单保存成功!"); } - return "redirect:/admin/menus"; } /** @@ -56,11 +70,12 @@ public class MenuController { * * @param menuId 菜单编号 * @param model model + * * @return 模板路径/admin/admin_menu */ @GetMapping(value = "/edit") public String updateMenu(@RequestParam("menuId") Long menuId, Model model) { - Menu menu = menuService.findByMenuId(menuId).get(); + Menu menu = menuService.findByMenuId(menuId).orElse(new Menu()); model.addAttribute("updateMenu", menu); return "/admin/admin_menu"; } @@ -69,6 +84,7 @@ public class MenuController { * 删除菜单 * * @param menuId 菜单编号 + * * @return 重定向到/admin/menus */ @GetMapping(value = "/remove") diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index 716971953..ab3f111e7 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -147,7 +147,7 @@ admin.menus.text.update-menu = 修改菜单 admin.menus.text.all-menus = 所有菜单 admin.menus.text.add-menu = 添加菜单 admin.menus.form.menu-name = 名称 -admin.menus.form.menu-name-tips = 页面上所显示的名称 +admin.menus.form.menu-name-tips = *页面上所显示的名称 admin.menus.form.menu-url = 路径 admin.menus.form.menu-url-tips = *菜单的路径 admin.menus.form.menu-sort = 排序编号 diff --git a/src/main/resources/i18n/messages_en_US.properties b/src/main/resources/i18n/messages_en_US.properties index e5b028d3d..6ac72489e 100644 --- a/src/main/resources/i18n/messages_en_US.properties +++ b/src/main/resources/i18n/messages_en_US.properties @@ -147,7 +147,7 @@ admin.menus.text.update-menu = Edit menu admin.menus.text.all-menus = All menus admin.menus.text.add-menu = Add menu admin.menus.form.menu-name = Menu name -admin.menus.form.menu-name-tips = The name displayed on the page +admin.menus.form.menu-name-tips = *The name displayed on the page admin.menus.form.menu-url = Menu url admin.menus.form.menu-url-tips = *Path to the menu admin.menus.form.menu-sort = Sort number diff --git a/src/main/resources/i18n/messages_zh_CN.properties b/src/main/resources/i18n/messages_zh_CN.properties index 716971953..ab3f111e7 100644 --- a/src/main/resources/i18n/messages_zh_CN.properties +++ b/src/main/resources/i18n/messages_zh_CN.properties @@ -147,7 +147,7 @@ admin.menus.text.update-menu = 修改菜单 admin.menus.text.all-menus = 所有菜单 admin.menus.text.add-menu = 添加菜单 admin.menus.form.menu-name = 名称 -admin.menus.form.menu-name-tips = 页面上所显示的名称 +admin.menus.form.menu-name-tips = *页面上所显示的名称 admin.menus.form.menu-url = 路径 admin.menus.form.menu-url-tips = *菜单的路径 admin.menus.form.menu-sort = 排序编号 diff --git a/src/main/resources/templates/admin/admin_menu.ftl b/src/main/resources/templates/admin/admin_menu.ftl index 21e9fceff..2cb133710 100644 --- a/src/main/resources/templates/admin/admin_menu.ftl +++ b/src/main/resources/templates/admin/admin_menu.ftl @@ -6,7 +6,7 @@@@ -59,7 +59,7 @@<@spring.message code='admin.menus.title' />