2012-06-28 29 views
0

我已经在采用以下方式配置寻址使用Spring MVC的应用春3.1.1.RELEASE请求不被弹簧控制器

的web.xml

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

    <servlet-mapping> 
    <servlet-name>springmvc</servlet-name> 
    <url-pattern>/cgi/*</url-pattern> 
    </servlet-mapping> 

用SpringMVC-servlet.xml中

<context:component-scan base-package="com.pokuri.mvc.controllers"/> 

UserController.java

package com.pokuri.mvc.controllers; 

@Controller 
@RequestMapping("/user") 
public class UserController { 

    @RequestMapping(method=RequestMethod.GET) 
    @ResponseBody 
    public String defaultRequest(){ 
     return "It's a default handler method"; 
    } 

} 

的index.jsp

<a class="action" href="cgi/user">Default Action</a> 

Sever的日志上用SpringMVC初始化应用:

23:53:04,406 INFO [DispatcherServlet] FrameworkServlet 'springmvc': initialization started 
23:53:04,468 INFO [XmlWebApplicationContext] Refreshing WebApplicationContext for namespace 'springmvc-servlet': startup date [Thu Jun 28 23:53:04 IST 2012]; root of context hierarchy 
23:53:04,609 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/context/services-context.xml] 
23:53:04,890 INFO [DefaultListableBeanFactory] Pre-instantiating singletons in org.s[email protected]6c4fe: defining beans [dummyService]; root of factory hierarchy 
23:53:05,156 INFO [DispatcherServlet] FrameworkServlet 'springmvc': initialization completed in 750 ms 
..... 
..... 
23:56:17,875 WARN [PageNotFound] No mapping found for HTTP request with URI [/springmvc/cgi/user] in DispatcherServlet with name 'springmvc' 

当我是点击链接在index.jsp中,我得到404错误。我可能犯了一个愚蠢的错误。但是,无法跟踪它。有人可以帮助我吗?

+0

尝试将'@RequestMapping(value =“/”,method = RequestMethod.GET)'on defaultRequest()' –

回答

1

看起来您的DispatcherServlet正在寻找以-context.xml结尾的配置文件。但是你的Spring配置文件叫做springmvc-servlet.xml

+0

DispacherServlet根据web.xml中给出的名称构建它的WebApplicationContext(即springmvc-servlet.xml )。然后我使用contextConfigLocation为服务,dao和其他bean配置应用程序上下文。这是我错误的看法? – Pokuri

+1

您是否尝试将web.xml中的该行更改为'/ WEB-INF/context/* - servlet.xml'(假设springmvc-servlet.xml位于上下文目录中)? – nickdos

+0

是啊!通过消除它的工作正常 – Pokuri