2015-08-18 158 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