我在Spring MVC 3.2中有一个控制器,我想允许以下网址: http://localhost:8080/mypage http://localhost:8080/mypage/ http://localhost:8080/mypage/foo
我想排除其他任何内容,例如http://localhost:8080/mypage/bar会导致错误。目前bar被映射到getStuff方法。
我认为我必须能够在不使用过滤器的情况下完成此任务吗?
我的servlet映射如下所示:
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/mypage/*</url-pattern>
</servlet-mapping>
控制器请求映射:
@RequestMapping(method = RequestMethod.GET)
public String getView(HttpServletRequest request, @ModelAttribute("myform") final MyForm form) {
return "myview";
}
@ResponseBody
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@POST
@RequestMapping(value = "/save")
public String onSave(@RequestBody MyForm form, HttpServletRequest request, HttpServletResponse response) {
return "saved";
}
答案 0 :(得分:0)
servlet的li{
transition:all 1s ease;
line-height:20px;
}
ul:hover li.test{
margin-bottom:-120px;
margin-top:80px;
}
标记不支持排除。这是Servlet规范的限制
您必须在<url-pattern>
。
答案 1 :(得分:0)
您必须使用名为Spring MVC
的{{1}}过滤器。
如果你自己编写Interceptors
,你有以下两个选项:
<强> 1。选项:强>
使用Interceptor
方法检查您的情况。如果您使用postHandle()
方法,则可以访问postHandle()
,如果您的网址与您的3个网址中的某个网址不匹配,则可以投放ModelAndView
或更改Exception
。
<强> 2。选项:强>
使用ModelAndView
方法,查看网址,如果他们不匹配则将preHandle()
与ModelAndViewDefiningException
投掷如下:
new ModelAndView()