我有一个控制器,请求映射为@RequestMapping("/**")
这是什么意思?Spring MVC @RequestMapping注解
如果我想从上面的映射中排除某些url模式,我会怎么做?
有人可以请说一说吗?
我有一个控制器,请求映射为@RequestMapping("/**")
这是什么意思?Spring MVC @RequestMapping注解
如果我想从上面的映射中排除某些url模式,我会怎么做?
有人可以请说一说吗?
您的网址将拦截所有匹配'/ **'的请求。根据你在哪里定义这个,我不知道你为什么要这样做。在类级别上,它应该定义基本路径,而在方法级别上,它应该被细化为特定函数。
如果你想排除的模式,你可以定义在更高的优先级排序控制器指定“/ **”
下面是春源2场很好的参考另一个控制器:
/**和/ *之间的区别是什么?我会认为/ *也会覆盖/ ** 我是否正确? –
恰恰相反。谷歌“蚂蚁风格模式”或类似的东西... –
通过使用正则表达式“negative lookahead”构造,我能够实现“url排除”或“不匹配url”。
我希望我的处理程序处理除静态资源(即CSS/Images/JS和错误页面)以外的所有内容。
为了防止错误页面HANDELING即resourceNotFound你需要
在您的控制器中使用下面的
@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";
}
}
}
另请指教我如何使用@RequestMapping URL模式。谢谢。 –