歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

struts.xml中的default-action-ref問題

當在struts.xml中配置default-action-ref時,如下:

  1. <package name="front" namespace="/" extends="struts-default" >  
  2.     <default-action-ref name="index"></default-action-ref>  
  3.     <action name="index" class="com.chen.action.Abc" method="def">  
  4.             <result>/index.jsp</result>  
  5.     </action>  
  6. </package>  
1.當在浏覽器中敲http://localhost:8080/apps/index時,這時候訪問的是apps應用下的/命名空間下的index這個action,這個action會被com.chen.action.Abc類中的def方法處理,這個時候當然會new一個Abc類的對象。

2.若http://localhost:8080/apps/jflakjdflakj後面隨便敲的時候,default-action-ref就起作用了,這時候默認的action是index,處理還會交給下面的index的action。

3.若http://localhost:8080/apps/,這時候需要注意的是不會默認訪問default-action-ref定義的action,而是優先訪問,web.xml中的welcome-file定義的視圖

  1. <welcome-file-list>  
  2.   <welcome-file>index.jsp</welcome-file>  
  3. </welcome-file-list>  
若想不敲的時候也通過index那個action,有兩種方法:

(1)將welcome-file中不寫任何視圖,這時候還是會走default-action-ref

(2)將welcome-file中定義index.action,這時候會到WebContent下找index.action,所以只要在WebContent下定義一個空文件,名字叫index.action即可

(2)經過實驗,不必在WebContent下建立一個和welcome-file中定義的同名的文件。也就是說只要welcome-file中定義的文件找不到,就會交給default-action-ref處理。

需要注意的是,在default-action-ref中定義的action最終返回的視圖若和welcome-file定義的視圖是“同一”視圖的話,可能會引起邏輯錯誤,這裡看似同一個視圖,但是default-action-ref定義的是經過action處理過的,走後面溜了一圈,而welcome-file直接返回了一個前台頁面,若在這個默認視圖中進行數據處理的話一定要注意。

Copyright © Linux教程網 All Rights Reserved