使用spring mvc将url模式重定向到特定的控制器

时间:2014-04-27 07:04:18

标签: java spring-mvc

我想重定向一个像这样的请求

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;我怎么能解决这种情况还有其他办法吗?

2 个答案:

答案 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;

您会看到OutOfMemoryError sometime

答案 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";
    }

谢谢