我想重定向一个像这样的请求
localhost:8080 / firstSpringProject / {uniqueusername}
到名为' profile'的特定控制器:
@RequestMapping(value="/profile")
public String profiles(Model model){
based on the uniqueusername i would like to render a profile page
return "profile";
}
我正在使用spring mvc;我怎么能解决这种情况还有其他办法吗?
答案 0 :(得分:2)
Spring文档在redirect view上说:
请注意,来自当前请求的URI模板变量是 在展开重定向网址时自动可用,而不是 需要通过模型或者明确地添加 RedirectAttributes。例如:
@RequestMapping(value = "/files/{path}", method = RequestMethod.POST)
public String upload(...) {
// ...
return "redirect:files/{path}";
}
请注意,低于3.1.4的版本会受到memory leak due to caching redirect views的影响。
如果您使用的是Spring 3.1.3或更低版本,那么
return "redirect : profile?username="+username;
答案 1 :(得分:1)
我认为你可以在这里使用spring path变量。您必须创建一个控制器方法,该方法将根据您的URL要求使用用户名,并将使用username参数重定向到profile方法。
@RequestMapping(value="/{username}")
public String getUserName(Model model,@PathVariable("username") String username){
//process username here and then redirect to ur profile method
return "redirect : profile?username="+username;
}
@RequestMapping(value="/profile")
public String profiles(Model model,String username){
//have a username and render a profile page
return "profile";
}
谢谢