Struts2開發中常見的問題

學習Struts2框架遇到的問題可以說是很常見的,我自己就總結了一下遇到的一些問題,希望可以對你有幫助鄙視

404問題

原因:這是訪問路徑錯誤,這是很常見的錯誤,也就是輸入的地址欄中的路徑不正確。這是前臺錯誤,後臺代碼並沒有錯誤。
     解決:檢查輸入路徑。

後綴名問題

 原因:Struts2默認action的後綴名是.action,有時不寫出.action後綴名也可以訪問(如果web.xml中的url-pattern值爲/*)。既然是默認的話,也就有自定義的後綴名。

     解決:主要配置兩個文件struts.xml和web.xml。

<!-- 指定被struts2處理的請求後綴類型。多個用逗號隔開 -->  
<constant name="struts.action.extension" value="action,do,go,xkk"/>

	<!-- 配置Struts2過濾器 -->
 	 <filter>
  		<filter-name>struts2</filter-name>
  		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  	</filter>
  	<filter-mapping>
  		<filter-name>struts2</filter-name>
  		<url-pattern>/*</url-pattern>
  	</filter-mapping>

端口占用問題

原因:Tomcat服務器的默認端口是8080(可以修改),當服務器沒有關閉時,又再次啓動Tomcat服務器就會拋出端口被佔用的錯誤。比如:Failed to initialize connector [Connector[HTTP/1.1-8080]]。

解決:到Tomcat安轉文件下的bin目錄下的shutdown文件雙擊,出現一閃後表示退出成功。

開發者模式問題

 原因:Struts框架默認情況下是非開發者模式,即struts.devMode的常量值爲false,當修改struts.xml文件時服務器不會重新加載配置文件,使用的還是未改變之前的struts.xml文件。

     解決:可以關閉Tomcat然後再啓動,也可以在struts.xml中配置成爲開發者模式。

    <!-- 是否使用struts的開發模式。開發模式會有更多的調試信息。默認值爲false(生產環境下使用),開發階段最好打開  --> 
    <constant name="struts.devMode" value="true" />

亂碼問題

原因:jsp、Struts2、數據庫三者的編碼不同,導致數據在傳輸過程中出現亂碼的問題。
     解決:設置jsp頁面的編碼pageEncoding爲UTF-8(以UTF-8爲例),struts.xml配置文件中配置常量。

    <!-- 設置表單提交數據的格式,對get和post都有用 -->
    <constant name="struts.i18n.encoding" value="UTF-8"/>

表單數據提交問題

     原因:屬性封裝和模型驅動封裝modelDriven的類中的屬性名和表單form標籤中的相關name屬性值不一致,導致數據提交失敗。當然表單提交的數據項可以和屬性封裝或者模型驅動封裝的數量可以不一致。
    解決:檢查屬性名和name屬性值是否一致。

服務器多項目加載問題

原因:myeclipse中有多個項目發佈到了Tomcat服務器,其中有的項目如果有錯誤,就會報錯。因爲Tomcat服務器啓動時就會將webapps目錄下的所有web項目加載。

     解決:不需要到Tomcat服務器的webapps目錄下將不需要的項目刪除,可以在myeclipse中的server小窗口將已經加載的其他項目取消發佈。如果沒有server小窗口可以設置出來,Window -> show view ->other... ->輸入server -> 雙擊即可。

多餘的話

     以上的問題只是暫時發現的常見問題,今後還會繼續更新偷笑

     這是我的一些理解了,希望見諒奮鬥




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章