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條經驗 獲得超5個贊
404 Not Found: The requested resource could not be found(請求資源未找到)
LoginController
僅使用 @Controller
,未結合使用 @ResponseBody
或者@RestController
,說明使用 View 請求重定向方式。"/tologin.form"、"/login.form"是否映射監(jiān)聽成功,從應用啟動日志就能看到,類似如下日志:
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映射只監(jiān)聽*.form并不會監(jiān)聽*.jsp重定向的請求,這些請求會落到Tomcat conf/web.xml配置的default Servlet。jsp文件放在哪里?
這樣修改試試:
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
添加回答
舉報