2014-07-05 98 views
1

我剛剛查看了Spring MVC框架,所以我對它很陌生,請原諒基本問題。但我想弄清楚視圖解析器是如何工作的。Spring MVC基本視圖分辨率

我創建了一個基本的控制器方法來添加用戶是這樣的:

@RequestMapping(value = "/add", method = RequestMethod.POST) 
    public String addUser(@ModelAttribute("user") User user, BindingResult result) { 
     logger.entry(user, result); 
     userRepository.save(user); 

     String returnString="redirect:members/confirmation"; 
     logger.exit(returnString); 
     return returnString; 
    } 

我希望它重定向到成員/ confirmation.jsp頁的WEB-INF /頁文件夾下。這只是一個簡單的JSP,表示「感謝註冊」。重定向是這樣,它不會允許表單雙張貼。 (這只是一個基本的測試應用程序)

我的MVC-調度 - servlet.xml中的配置文件中配置的internalviewresolver:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/pages/"/> 
     <property name="suffix" value=".jsp"/> 
     <property name="order" value="0"/> 
    </bean> 

但它不解決,以確認視圖,只是404的。

我在這裏錯過了什麼?

謝謝!

+0

此外,如果我拿出重定向前綴,它工作正常。 –

+0

你在重定向和轉發。重定向意味着向瀏覽器發送響應,要求它將請求發送回另一個位置。你想要的是一個前鋒。不要使用重定向:前綴。 –

+0

重定向是阻止重複表單提交問題的推薦方法嗎? http://stackoverflow.com/questions/2324931/duplicate-form-submission-in-spring –

回答

2

返回"redirect:members/confirmation"做一個客戶端重定向到members/confirmation(此相對URL)。您的應用程序目前不響應對members/confirmation的HTTP請求。使用目標JSP頁面作爲視圖爲此URI創建控制器:

@RequestMapping(value = "/members/confirmation", method = RequestMethod.GET) 
public String confirmation() { 

    return "members/confirmation"; 
} 

這是執行此操作的唯一正確方法。