From 732c4d14e5c2a5aec2a2c0ce1535ef219055feab Mon Sep 17 00:00:00 2001 From: ruibaby Date: Thu, 27 Dec 2018 12:00:01 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cc/ryanc/halo/model/domain/Menu.java | 5 ++++ .../web/controller/admin/MenuController.java | 30 ++++++++++++++----- src/main/resources/i18n/messages.properties | 2 +- .../resources/i18n/messages_en_US.properties | 2 +- .../resources/i18n/messages_zh_CN.properties | 2 +- .../resources/templates/admin/admin_menu.ftl | 28 ++++++++++++----- 6 files changed, 52 insertions(+), 17 deletions(-) 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 b4850ee7f7..aaed95e9e0 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.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 163b338612..d5f05ab85d 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 String menus() {
      * 新增/修改菜单
      *
      * @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 String saveMenu(@ModelAttribute Menu menu) {
      *
      * @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 String updateMenu(@RequestParam("menuId") Long menuId, Model model) {
      * 删除菜单
      *
      * @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 7169719531..ab3f111e79 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 e5b028d3d2..6ac72489e0 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 7169719531..ab3f111e79 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 21e9fceff7..2cb133710c 100644
--- a/src/main/resources/templates/admin/admin_menu.ftl
+++ b/src/main/resources/templates/admin/admin_menu.ftl
@@ -6,7 +6,7 @@
         

<@spring.message code='admin.menus.title' />