gpt4 book ai didi

spring-mvc - Spring MVC 中的 @RequestMapping 注解

转载 作者:行者123 更新时间:2023-12-02 23:24:46 24 4
gpt4 key购买 nike

我有一个请求映射为 @RequestMapping("/**") 的 Controller 这是什么意思?

如果我想从上面的映射中排除某些 url 模式,我该怎么做?

有人可以解释一下吗?

最佳答案

我能够通过使用正则表达式“否定前瞻”构造来实现“url 排除”或“不匹配 url”。

我希望我的处理程序能够处理除静态资源(即 CSS/Images/JS 和错误页面)之外的所有内容。

为了防止处理错误页面,即resourceNotFound,您需要

  1. 编辑 web.xml/web-app/error-page 以在错误网址中添加/error/前缀
  2. 编辑 WEB-INF/spring/webmvc-config.xml/beans/mvc:view-controller/@path 处理您的新映射
  3. 编辑 WEB-INF/spring/webmvc-config.xml/beans/bean[@class=**SimpleMappingExceptionResolver] 将所有异常映射到 error/...

在您的 Controller 中使用以下内容

@Controller
@RequestMapping(value = { "/" })
public class CmsFrontendController {

@RequestMapping(value = { "/" }, headers = "Accept=text/html")
public String index(Model ui) {
return addMenu(ui, "/");
}

@RequestMapping(value = { "{path:(?!resources|error).*$}", "{path:(?!resources|error).*$}/**" }, headers = "Accept=text/html")
public String index(Model ui, @PathVariable(value = "path")String path) {
try {
path = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
return addMenu(ui, path);
} catch (Exception e) {
log.error("Failed to render the page. {}", StackTraceUtil.getStackTrace(e));
return "error/general";
}
}
}

关于spring-mvc - Spring MVC 中的 @RequestMapping 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com