初學spring那些事——spring mvc 404錯誤

1、spring mvc 404錯誤

輸入地址,瀏覽器只顯示404,並沒有其它多餘提示,在Controller類裏下斷點發現並無執行。糾結了一天後才百度到是由於servlet.xml裏沒有配置<mvc:annotation-driven />。html

        <mvc:annotation-driven />是一種簡寫形式,徹底能夠手動配置替代這種簡寫形式,簡寫形式可讓初學都快速應用默認配置方案。<mvc:annotation-driven /> 會自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,是spring MVC爲@Controllers分發請求所必須的。沒有這兩個bean@Controller、@RequestMapping@RequestBody/ResponseBody等spring mvc註解沒法工做。web

        與<mvc:annotation-driven />相似的是<context:annotation-config>,它使通用註解得以工做,如:@Required, @Autowired, @PostConstructspring

    註解問題解決後瀏覽器依然報404錯誤,不過有了提示,路徑不對找不到訪問資源。再次檢查servlet.xml配置,發現是文件映射路徑解析配置錯誤。api

<bean 瀏覽器

class="org.springframework.web.servlet.view.InternalResourceViewResolver"服務器

p:viewClass="org.springframework.web.servlet.view.JstlView"mvc

p:prefix="classpath/view/jsp/" app

p:suffix=".jsp" />jsp

緣由是classpath在p:prefix裏不起做用,會被直接解析成「classpath」字符串。映射路徑解析規則 :假設Controller類裏returned login, 拼接prefix、suffix值造成classpath/view/jsp/login.jsp。服務器裏沒有classpath/view/jsp這個目錄,頁面發佈在/WEB-INF/classes/view/jsp/目錄下,將classpath/view/jsp/改成/WEB-INF/classes/view/jsp/,成功反問到頁面。單元測試

2、Unable to compile class for JSP……   The method getJspApplicationContext(ServletContext) is undefined for the type JspFacto錯誤

        404錯誤解決後能夠訪問到jsp頁面,但沒法正常顯示,報500錯誤附帶提示 Unable to compile class for JSP……   The method getJspApplicationContext(ServletContext) 

is undefined for the type JspFacto錯誤。 緣由是lib包中存在兩個servlet-api包引發衝突,註釋了pom.xml裏的jsp依賴後低版本的servlet-api包消失,頁面可以正常訪問。

3、spring集成Junit單元測試問題

    低版本Junit jar包不兼容spring,建議用4.11以上版本。起先用4.1版本的junit包,對service層代碼進行單元測試的時候程序報錯,後來換成4.8版本仍是報錯,最後換成4.11版本才成功運行。

問題:

        關於Command Object。我並無配置Command Object,Controller裏也沒有寫任何相關的代碼,或許有點關係的是我把Command類和Controller類一塊放在web包下,servlet.xml配置了這個包的掃描,且表單input標籤name屬性值和Command類屬性值一致。運行程序時竟然可以自動將表單提交數據(userName和password)封裝到Command類裏,這真實太神奇啦!這個問題待進一步學習過程當中解決。

相關文章
相關標籤/搜索