我想为每个用户设置自己的个人资料链接
像这样:
@RequestMapping(value = "/{userlogin}", method = RequestMethod.GET)
public String page(@PathVariable("userlogin") String userlogin, ModelMap model) {
System.out.println(userlogin);
return "user";
}
但静态页面也得到了这个表达式。
像这样:
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
System.out.println("hello mapping");
return "hello";
}
那是我请求GET请求"你好"它会调用两个控制器
我想这样做,只有在没有调用其他方法的情况下,用户控制器才会调用。
控制台,当我调用 localhost:8080/123:
123
控制台,当我调用 localhost:8080 / hello:
hello
hello mapping
或
hello mapping
hello
我想只得到
hello mapping
当调用 localhost:8080 / hello
谁知道如何实施?
答案 0 :(得分:0)
Spring MVC可以使用带有正则表达式的URI模板模式。提供:
userlogin
仅包含数字您可以在@RequestMapping
:
@RequestMapping(value = "/{userlogin:\\d+}", method = RequestMethod.GET)
public String page(@PathVariable("userlogin") String userlogin, ModelMap model) {
//...
}
如果userlogin
与其他网址之间的分隔与我想象的不同,则很容易适应。