diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java index 88c7a06b9..d9d6de1d4 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/ThemeController.java @@ -7,7 +7,7 @@ import cc.ryanc.halo.service.OptionService; import cc.ryanc.halo.utils.LocaleMessageUtil; import cc.ryanc.halo.utils.ThemeUtils; import cc.ryanc.halo.web.controller.admin.base.BaseController; -import cc.ryanc.halo.web.controller.core.BaseFrontController; +import cc.ryanc.halo.web.controller.core.BaseContentController; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileReader; import cn.hutool.core.io.file.FileWriter; @@ -58,7 +58,7 @@ public class ThemeController extends BaseController { */ @GetMapping public String themes(Model model) { - model.addAttribute("activeTheme", BaseFrontController.THEME); + model.addAttribute("activeTheme", BaseContentController.THEME); model.addAttribute("themes", THEMES); return "admin/admin_theme"; } @@ -77,7 +77,7 @@ public class ThemeController extends BaseController { HttpServletRequest request) { try { optionService.saveOption("theme", themeName); - BaseFrontController.THEME = themeName; + BaseContentController.THEME = themeName; configuration.setSharedVariable("themeName", themeName); log.info("Changed theme to {}", themeName); return new JsonResult(1, localeMessage("code.admin.theme.change-success", new Object[]{themeName})); @@ -228,7 +228,7 @@ public class ThemeController extends BaseController { */ @GetMapping(value = "/editor") public String editor(Model model) { - final List templates = ThemeUtils.getTplName(BaseFrontController.THEME); + final List templates = ThemeUtils.getTplName(BaseContentController.THEME); model.addAttribute("tpls", templates); return "admin/admin_theme-editor"; } @@ -245,7 +245,7 @@ public class ThemeController extends BaseController { String tplContent = ""; try { final StrBuilder themePath = new StrBuilder(ThemeUtils.getUsersThemesPath().getAbsolutePath()); - themePath.append(BaseFrontController.THEME); + themePath.append(BaseContentController.THEME); themePath.append("/"); themePath.append(tplName); final File themesPath = new File(themePath.toString()); @@ -273,7 +273,7 @@ public class ThemeController extends BaseController { } try { final StrBuilder themePath = new StrBuilder(ThemeUtils.getUsersThemesPath().getAbsolutePath()); - themePath.append(BaseFrontController.THEME); + themePath.append(BaseContentController.THEME); themePath.append("/"); themePath.append(tplName); final File tplPath = new File(themePath.toString()); diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/BaseFrontController.java b/src/main/java/cc/ryanc/halo/web/controller/core/BaseContentController.java similarity index 95% rename from src/main/java/cc/ryanc/halo/web/controller/core/BaseFrontController.java rename to src/main/java/cc/ryanc/halo/web/controller/core/BaseContentController.java index baaa22074..665b8e4f5 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/BaseFrontController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/BaseContentController.java @@ -11,7 +11,7 @@ import cn.hutool.core.text.StrBuilder; * @author : RYAN0UP * @date : 2017/12/15 */ -public abstract class BaseFrontController { +public abstract class BaseContentController { /** * 定义默认主题 diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java index 69a836b8d..39d588c50 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/CommonController.java @@ -1,6 +1,7 @@ package cc.ryanc.halo.web.controller.core; import cc.ryanc.halo.logging.Logger; +import cn.hutool.core.text.StrBuilder; import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; @@ -20,6 +21,7 @@ import javax.servlet.http.HttpServletRequest; public class CommonController implements ErrorController { private static final String ERROR_PATH = "/error"; + private final Logger log = Logger.getLogger(getClass()); /** @@ -32,6 +34,8 @@ public class CommonController implements ErrorController { public String handleError(HttpServletRequest request) { final Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); + final String requestURI = request.getRequestURI(); + log.error("Error path: [{}], status: [{}]", request.getRequestURI(), statusCode); // Get the exception @@ -43,37 +47,64 @@ public class CommonController implements ErrorController { if (StringUtils.startsWithIgnoreCase(throwable.getMessage(), "Could not resolve view with name '")) { // TODO May cause unreasoned problem // if Ftl was not found then redirect to /404 - return "redirect:/404"; + if (requestURI.contains("/admin")) { + return "redirect:/admin/404"; + } else { + return "redirect:/404"; + } } } - -// if (statusCode.equals(CommonParamsEnum.NOT_FOUND.getValue())) { -// return "redirect:/404"; -// } else { -// return "redirect:/500"; -// } - // TODO Complete error handler - return "redirect:/500"; + if (requestURI.contains("/admin")) { + return "redirect:/admin/500"; + } else { + return "redirect:/500"; + } } /** - * 渲染404页面 + * Render 404 error page * - * @return String + * @return template path: */ - @GetMapping(value = "/404") - public String fourZeroFour() { + @GetMapping(value = "/admin/404") + public String adminNotFround() { return "common/error/404"; } /** - * 渲染500页面 + * Render 500 error page + * + * @return template path: + */ + @GetMapping(value = "/admin/500") + public String adminInternalError() { + return "common/error/500"; + } + + /** + * Render 404 error page * * @return String */ + @GetMapping(value = "/404") + public String contentNotFround() { + StrBuilder path = new StrBuilder("themes/"); + path.append(BaseContentController.THEME); + path.append("/404"); + return path.toString(); + } + + /** + * Render 500 error page + * + * @return template path: + */ @GetMapping(value = "/500") - public String fiveZeroZero() { - return "common/error/500"; + public String contentInternalError() { + StrBuilder path = new StrBuilder("themes/"); + path.append(BaseContentController.THEME); + path.append("/500"); + return path.toString(); } /**