Spring MVC Url模式

时间:2011-07-12 10:17:18

标签: spring spring-mvc

我想知道我是否可以将我的网址自定义为控制器以接受空值

@RequestMapping(
            value = "foo/{y}/{x}",
            method = RequestMethod.GET)
    public ModelAndView doSmth(@PathVariable(value = "x") String x,
                               @PathVariable(value = "y") String y) {
}

在我的情况下,X,Y可以是空字符串。 我怎么能管理这样的smth让控制器上的这个方法来处理这个url?

2 个答案:

答案 0 :(得分:1)

如果要支持可选值,则路径变量不适合。请求参数(使用@RequestParam)是一个更好的主意,因为它们可以使用required属性轻松支持可选值。

如果你真的想支持可选路径变量,那么你需要重载你的映射,即

@RequestMapping(value = "foo/{y}/{x}")
public ModelAndView doSmth(@PathVariable(value = "x") String x, @PathVariable(value = "y") String y) 

@RequestMapping(value = "foo/{y}")
public ModelAndView doSmth(@PathVariable(value = "y") String y) 

@RequestMapping(value = "foo")
public ModelAndView doSmth() 

答案 1 :(得分:1)

我不认为,这是一个很好的网址。这对用户来说可能非常混乱。

你为什么不尝试这个?

@RequestMapping("foo/x/{x}/y/{y}")
public ModelAndView doSmth(@PathVariable String x, @PathVariable String y)