2012-01-13 72 views
2

我正在嘗試爲家庭控制器做請求映射。我家的控制器有一個方法:你能告訴我,我的請求映射有什麼問題嗎?

@RequestMapping(value = "/create", method = RequestMethod.GET) 
public ModelAndView Create(Locale locale, Model model) 
{ 
    return new ModelAndView("create"); 
} 

而且我認爲解析器按以下方式進行配置:

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> 
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <beans:property name="prefix" value="/WEB-INF/views/" /> 
    <beans:property name="suffix" value=".jsp" /> 
</beans:bean> 

而且還有文件夾中的觀點:的意見/ create.jsp

在家庭控制器超鏈接被構造成具有這樣的代碼:

<p><a href = "/create">New topic</a></p> 

但是,當我點擊超鏈接時,我收到#404錯誤。

+2

您是否配置了servlet映射和請求調度程序 – 2012-01-13 07:47:22

+0

您有沒有在控制器方法中設置斷點,以檢查問題是找不到控制器方法還是未找到視圖? – Ralph 2012-01-13 08:24:09

+0

拉爾夫,我已經設置了一個斷點,找到了控制器。問題是找到一個來源。 – Eugene 2012-01-13 08:34:02

回答

3

如果你的文件夾http://localhost/AppName/在你的服務器和要使用

<p><a href = "/create">New topic</a></p> 

重定向到索引,你會得到http://localhost/create而不是http://localhost/AppName/create

二:

我有同樣的問題,因爲你所描述這裏,它解決了,只要我映射與擴展的意見。

所以在我的情況:

@RequestMapping(value = "/create.html", method = RequestMethod.GET) 
public ModelAndView Create(Locale locale, Model model) 
{ 
    return new ModelAndView("create"); 
} 

和您的調度器服務器應該是:

<servlet> 
    <servlet-name>SomeServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>SomeServlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

也許它不會幫助,但只是給它一個嘗試。我無法解釋爲什麼發生了,但它解決了我的問題。

+0

謝謝,解決了超鏈接錯誤。現在,我試圖讓ViewResolver工作 – Eugene 2012-01-13 09:51:11

+0

丹尼,看起來,你的第一個建議的作品。 AppName是** CASE SENSITIVE **。我第一次在網上看到這樣的事情。 – Eugene 2012-01-13 11:39:19

相關問題