【Struts2】Annotation使用小記

struts2支持註解,並宣稱支持0配置(XML配置文件)

Struts2的註解配置.

      1.在Web.xml配置文件中添加

  1. <filter>
  2. <filter-name>struts2</filter-name>
  3.         <filter-class>
  4.                    org.apache.struts2.dispatcher.FilterDispatcher
  5.          </filter-class>
  6.     <init-param>
  7.         <param-name>actionPackages</param-name> 
  8.         <param-value>com.learn.action</param-value> 
  9.      </init-param>
  10. </filter>

        這樣sturts2框架會自動掃描action包中的命名爲*Action或者集成ActionSupport的類,例如一個類命名爲SearchAction,那麼Struts2框架會自動掃描它,認爲它爲一個Action類,並且將所有search.action的請求都轉發給該類進行處理,這時我們又遇到了一個問題,如果這個Action是多Method的Action那麼我們又該怎麼辦呢?因爲不能像在XML中那樣配置Method屬性,這時我們可以在請求是加上!MethodName以請求特定的Method即可,例如想要請求SearchAction的search方法,我們可以直接這樣請求:search!search.action.

       以上講到的是Struts2框架如何找到沒有在XML中定義的Action,並且怎麼樣將請求轉發給適當的Action來進行處理.

       我們都知道在XML中可以定義Action處理完以後的跳轉,同樣利用Annotation也可以做到這一點:

        2.Resules的Annotation定義

        我們只需要在Action Class的類的前面加上@Result即可以定義Action的跳轉

        例如:    

  1. @Results({
  2.    @Result(name="input" value="/input.jsp" type=NullResult.class),
  3.    @Reuslt(name="success" value="/success.jsp" type=NullResult.class),
  4.    @Result(name="error" value="/error.jsp" type=NullResult.class)
  5. })

        上面是一個典型的多Result配置,name屬性指定返回的字符串,value指定要跳轉的頁面,type指定Result的類型,type是一個很重要的屬性,他有一下幾種情況:

        1)NullResult  : 默認的可以省略

        2)ActionChainResult : 用於從一個Action跳轉到另外一個Action

        例如:

                    

  1. @Result
  2. (name = "search",value= "search",type=ActionChainResult.class,
  3. params={"method","search"})

        這個配置是如果返回值爲"search"就跳轉掉SearchAction的search方法,如果不指定params就跳轉到SearchAction的execute方法

        3)StreamResult:用於文件下載

        例如:

                

  1. @Result
  2. (name="success",value="inputStream",type=StreamResult.class,
  3. params={"bufferSize",FileConstant.DOWNLOAD_BUFFER_SIZE})

        作爲Struts2的Annotation配置中最重要的Result配置大致有這幾種情況,關於Struts2  Annotation的其他配置我也不是十分了解,就以後在介紹吧!!!

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