2014-04-27 36 views
1

我想重定向請求是這樣的使用彈簧MVC重定向URL模式到一個特定的控制器

本地主機:8080/firstSpringProject/{uniqueusername}

到名爲「輪廓」一個特定的控制器:

@RequestMapping(value="/profile") 
public String profiles(Model model){ 

    based on the uniqueusername i would like to render a profile page 

    return "profile"; 
} 

我正在使用spring mvc;我該如何解決這種情況還有沒有其他辦法可以做到這一點?

+1

目前還不清楚源模式是什麼。你的意思是像'@RequestMapping(「/ {uniqueUserName}」)'嗎? – chrylis

+0

sourece請求可能會這樣:firstSpringProject/username1或firstSpringProject/username2左右,我想重定向到@RequestMapping(value =「/ profile」),然後根據我想呈現用戶配置文件的url(這裏它可能是username1或2) – user1023696

回答

1

我想你可能會在這裏使用彈簧路徑變量。您必須創建一個控制器方法,根據您的URL要求獲取用戶名,並使用username參數重定向到配置文件方法。

@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"; 
    } 

謝謝

+0

工作正常謝謝oomphfortuity – user1023696

2

Spring文檔上說redirect view

注意,從目前的請求URI模板變量擴大重定向URL時 自動獲得,不要 需要不應通過Model或 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

相關問題