java_wxp
2013-04-18 16:20
浏览 508
已采纳

关于spring请求不到controller方法的回复:

看了回复后,大家最多想到的是路径写错了,没加项目名称,http://localhost:8089/项目名/user/login.do。关于这个问题,由于我在问题描述里没写清楚,结果让大伙走弯路了,我项目部署用的是虚拟路径,在/conf/Catalina/localhost/下,定义一个ROOT.xml配置文件,文件中路径配置为我的工程路径,如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/" docBase="E:/code/spring/WebContent" reloadable="false" />

 

这样tomcat在启动的时候扫描/conf/Catalina/localhost/ROOT.xml文件,会把ROOT.xml文件里配置的工程加载到tomcat中(和把项目发布到tomcat/webapps下不同,配置虚拟路径后,tomcat/webapps/下没有该工程的任何信息),这样在地址栏里就看不到我的项目名称了,直接输入http://localhost:8089/login.jsp就可以访问login.jsp页面了,这样直接导致的结果就是访问不到/user/login.do,

 

后来Dead_knight 说,他把配置文件修改了下后,成功了,我按照Dead_knight的配置,重新修改了我的配置文件后还是不行,既然Dead_knight那边成功了,那就应该和代码,配置无关了,我把项目换了种发布方式后,这次请求成功了,仔细看了下Dead_knight的配置文件,就是在DefaultAnnotationHandlerMapping中多了order=0的属性。

 

我想,既然是由于虚拟路径引起的问题,会不会是由于哪里没配置的原因呢,看了jinnianshilongnian的博客后,参考着试着配置了一下,在原来配置的基础上,加入了<mvc:resources mapping="/**" location="/" order="1"/>,直接访问http://localhost:8089/user/login.do,报404,而在login.jsp中点提交,报405,后

台打印org.springframework.web.servlet.PageNotFoundhandleHttpRequestMethodNotSupported
警告: Request method 'POST' not supported

 

不知道会不会是<mvc:resources mapping="/**" location="/" order="1"/>没配对的原因?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • jinnianshilongnian 2013-04-18 16:35
    最佳回答

    这个之前回复你了

    删掉

    spring3mvc
    *.jsp

    即可 因为你把jsp的又交给spring了 所以处理出现问题了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题