8 回答

TA贡献1853条经验 获得超9个赞
找到症结所在了
我重新看了一下你的描述, 你说你可以直接访问.jsp页面!!!
那你的jsp就应该是直接放在根路径下的! 那你就不应该配置 prefix参数或者value="/"
而且之所以将view放置到WEB-INF下就只为了防止用户不经由控制器直接访问,这样会导致页面上的Model数据不存在,所以劝你也放到那里。
——————————————————————————————————
看起来配置都好像没什么问题, 建议你打个断点在.form方法里。
现在这个样子看起来像是Mapping映射成功了,但是返回的View视图没有找到。
你确认一下/WEB-INF/ok.jsp和/WEB-INF/login.jsp存不存在。
另外,我一般见到的 view好像没有直接扔到/WEB-INF/下的,都是/WEB-INF/views或者/WEB-INF/jsps目录下的。
你看看你是不是也这样放置的,如果是,那你就是配置文件写错了。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/">
</property>
<property name="suffix" value=".jsp">
</property>
</bean>

TA贡献1817条经验 获得超14个赞
404一般有两个原因,一个是RequestMapping写的不对或者没有找到,但是你的配置应该是正确的,另一个是你的模板没有,确认一下你返回的两个模板ok.html login.html 或者ok.jsp ok.html是否存在吧
另外404的页面上会有提示到底是哪个原因,把具体的错误贴出来吧

TA贡献2011条经验 获得超2个赞
可以在controller要调用的方法中打个断点,看看请求是否进入了需要调用的方法。
如果没进入,一般是配置映射出错。
如果进入方法,则证明返回的"login"没被视图解析器解析到。

TA贡献1797条经验 获得超4个赞

TA贡献1821条经验 获得超4个赞
404 Not Found: The requested resource could not be found(请求资源未找到)
LoginController
仅使用 @Controller
,未结合使用 @ResponseBody
或者@RestController
,说明使用 View 请求重定向方式。"/tologin.form"、"/login.form"是否映射监听成功,从应用启动日志就能看到,类似如下日志:
2016-04-12 23:29:35.157 INFO 2398 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String hello.HelloController.index()
而你配置的springmvc Servlet映射只监听*.form并不会监听*.jsp重定向的请求,这些请求会落到Tomcat conf/web.xml配置的default Servlet。jsp文件放在哪里?
这样修改试试:
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
添加回答
举报