2 taddy4944 taddy4944 于 2013.06.16 20:34 提问

spring mvc注解不能访问到controller

web.xml配置

<servlet>  
<servlet-name>annomvc</servlet-name>  
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
<init-param>    
<param-name>contextConfigLocation</param-name>    
<param-value>/WEB-INF/annomvc-servlet.xml</param-value>   
</init-param>   
<load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping>   
<servlet-name>annomvc</servlet-name>   
<url-pattern>*.do</url-pattern> 
</servlet-mapping>

annomvc-servlet.xml配置

<context:annotation-config />    
    <!-- 把标记了@Controller注解的类转换为bean -->            
    <context:component-scan base-package="com.svs.master.controller" />

   <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->    
  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />     

   <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->     
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"     
      p:prefix="/csy/page/" p:suffix=".htm" />
   <bean id="multipartResolver"     
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver"     
      p:defaultEncoding="utf-8" />

controller类

    @Controller@RequestMapping(value = "/userlogin.do")
   public class UserLoginController  {    
   @RequestMapping(params="method=login", method = RequestMethod.POST)    
public String userLogin(HttpServletRequest request,   HttpServletResponse response) throws Exception {    //...方法内容    }}

页面请求

<form method="post" action="userlogin.do?method=login" >

后台错误

20:45:52,098 DEBUG DispatcherServlet:693 - DispatcherServlet with name 'annomvc' processing POST request for [/test/csy/page/userlogin.do]
20:45:52,098  WARN PageNotFound:947 - No mapping found for HTTP request with URI [/test/csy/page/userlogin.do] in DispatcherServlet with name 'annomvc'
20:45:52,098 DEBUG DispatcherServlet:674 - Successfully completed request

38个回答

wodetongnian
wodetongnian   2014.11.25 00:03
已采纳

请问下,你的页面有问题吗?

u011731233
u011731233   2014.11.19 13:02

struts.xml里有没有定义好

nohero1
nohero1   2014.12.12 16:27

我很好奇你的访问路径 为什么会带 csy/page/ 不是应该 test/userlogin.do的吗?

xaoyaoyaomm
xaoyaoyaomm   2015.01.04 11:51

@Controller 写法有问题~

qq_28878909
qq_28878909   2015.10.12 17:34

把方法名上面的mapping .do去掉,然后请求路径加上.do

u013672953
u013672953   2014.11.18 09:34

把URL 改成classpath:springmvc.xml看看

shiweihang
shiweihang   2014.11.18 22:46

form中的action 最好写绝对路径 这样写是相对当前路径 将method改为get 看看请求的地址有没有问题

后台的报错中提示 /test/csy/page/userlogin.do 正确的的uri应该是 /项目名/userlogin.do

WangJing_Java
WangJing_Java   2014.11.19 08:45

1、首先你的访问路径应该改成绝对路径,这样会很规范,而且不容易出错。
2、/WEB-INF/annomvc-servlet.xml

如果你的配置文件在/WEB-INF下,是可以不配置的,如果在/src下,你可以配置为:
classpath:annomvc-servlet.xml

ding43930053
ding43930053   2014.12.08 19:57


mz848083987
mz848083987   2014.12.29 16:38
@Controller@RequestMapping(value = "/userlogin.do")

    这里不用加   .do吧

public class UserLoginController {

@RequestMapping(params="method=login", method = RequestMethod.POST)

public String userLogin(HttpServletRequest request, HttpServletResponse response) throws Exception { //...方法内容 }}

共38条数据 1 3 4 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!