2015-08-18 213 views
-2

大家好,我正在開發covoiturage應用程序,並且頁面之間的導航有問題。當我點擊一個鏈接轉到頁花葯我有問題「的映射關係,發現在DispatcherServlet的名稱爲MVC的調度程序URI http請求」 謝謝Spring MVC URL映射問題

<annotation-driven /> 

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> 
<resources mapping="/resources/**" location="/resources/" /> 

<!-- 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> 

<context:component-scan base-package="com.covoiturage.app" /> 


    <servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 


    <servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

org.springframework.web.context .ContextLoaderListener

+1

請編輯您的問題,並把代碼FR在那裏激動。包含堆棧跟蹤,如果有的話。 –

+0

當我點擊一個鏈接,我總是警告:org.springframework.web.servlet.PageNotFound - 沒有找到映射找到URI的HTTP請求[/應用程序/登錄]在名爲'appServlet'的DispatcherServlet' – user0321

回答

0

您得到的異常說明您嘗試導航到的URL將轉發到DispatcherServlet,但不會在任何Web控制器上映射。更具體地講,如果你有這樣的

<a href="/my-url">click me</a> 

的鏈接,使導航的根上下文映射您的DispatcherServlet,這樣

<servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

,然後你有,比方說,一個HTML頁面碰巧你需要@Controller有與該URL映射的方法註釋的類(注意@RequestMapping註釋):

@Controller 
public class TestPageController 
{  
    @RequestMapping(path = "/my-url") 
    public String getTestPage() 
    { 
     return "renderViewName"; 
    } 
} 
+0

我需要創建一個類爲每個頁面? – user0321

+0

不,只要該類用@ @ Controller'註解,用@ @ RequestMapping'用該方法註釋,就可以創建儘可能多的控制器(也就是說,如果你願意的話,只能有一個)。通常我會爲每個html或jsp頁面看到一個控制器,但是,這又是由您來決定的。 –

+0

我已經完成了你所說的並且解決了登錄頁面的問題,但是當我嘗試單擊SignUp頁面時,我遇到了問題「org.springframework.web.servlet.PageNotFound - 沒有找到具有URI的HTTP請求的映射[/ DispatcherServlet中名爲'appServlet'的應用程序/ SignUp] – user0321