我想知道我是否可以将我的网址自定义为控制器以接受空值
@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?
答案 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)