Spring - 警告:找不到带URI的HTTP请求的映射

时间:2011-12-20 13:18:37

标签: spring

我是Spring的新手,已经阅读了很多但我无法弄清楚为什么这不起作用。我在下面列出了相关部分......
 
web.xml中:

<servlet>
    <servlet-name>display</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>display</servlet-name>
    <url-pattern>*.p</url-pattern>
</servlet-mapping>


显示servlet.xml中:

<mvc:annotation-driven />
<context:component-scan base-package="com" />   
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />


displayController.java:

package com;
@Controller
public class displayController {

    @RequestMapping("/display")
    public ModelAndView displayName() {
        System.out.println("-- in handleRequest");
        ModelAndView mv = new ModelAndView("display");
        user u = new user();
        u.setUsername("bob");   
        mv.addObject("user", u);
        return mv;
    }
}


现在,据我所知,这就是我认为发生的事情,但事实并非如此......

1。我去了一个网址“/user/display.p”
2。应用程序在web.xml中查找,找到url模式“* .p”并注意它应该与servlet显示链接。然后创建DispatcherServlet的实例并加载display-servlet.xml中的上下文。
3。当加载display-servlet.xml时,它注意到mvc:annotation-driven并做了一些事情(不确定我是否理解那个,但我认为我需要它。然后,它注意到了组件扫描并扫描display Comtroller所在的“com”包。
4。在displayController中搜索注释,发现它是一个控制器,任何带有“/ display”的url都应该自动触发displayName()函数。
5。 [在这里的某个地方突然......] 6。然后,应该发生什么(但不是),应该加载视图“display”并加载“/WEB-INF/jsp/display.jsp”。但是,没有找到视图“display”,我收到错误“警告:在DispatcherServlet中找不到带有URI [/testing/user/display.p]的HTTP请求的映射,名称为'display'”

有人可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

package com;
@Controller
public class displayController {

@RequestMapping("/user/*)
public ModelAndView displayName() {
    System.out.println("-- in handleRequest");
    ModelAndView mv = new ModelAndView("display");
    user u = new user();
    u.setUsername("bob");   
    mv.addObject("user", u);
    return mv;
}
}

调度程序将使用模式* .p将请求委托给dispatcherServlet,dispatcherServlet会将/ user / *请求委托给您的方法。