[Java Web]Struts2加起來(一個)

來源:互聯網
上載者:User

標籤:

Struts2環境配置
  1. 進口Struts2的需要jar包
  2. 在WEB-INF/classes(src)檔案夾下建立struts.xml檔案
  3. 在web.xml檔案裡加入Struts過濾器資訊
經常使用設定檔
  1. struts.xml:用於存放Action映射關係、設定Struts配置資訊
  2. web.xml:用於配置容器的Struts過濾器,一般配置例如以下:
    <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>
  3. struts-default.xml:Struts2的預設配置資訊,一般不建議改動
  4. default.properties:Struts2的預設設定資訊。相同不建議改動
Action
Struts2的核心功能,一般由兩部分組成:struts.xml的Action映射和使用Java編寫的Action實體類。在struts.xml中通常使用<action>、<result>、<package>等一系欄標籤完畢Action的映射,它們的屬性分別有:
  1. package

    屬性

    是否必須

    描寫敘述

    name

    包名。作為其他包應用本包的標記

    extends

    設定本包繼承其他包

    namespace

    設定包的命名空間

    abstact

    設定為抽象包


  2. action

    屬性

    是否必須

    描寫敘述

    name

    請求的Action名稱

    class

    Action處理類相應詳細路徑

    method

    指定Action中的方法名

    converter

    指定Action使用的類型轉換器


  3. result

    屬性

    是否必須

    描寫敘述

    name

    Action返回視圖名稱。默覺得success

    type

    返回結果類型,默覺得dispatcher

一個簡單地Action映射能夠寫成:
<package name="admin" extends="struts-default"><action name="welcome" class="struts.action.WelcomeAction"><result>/welcome.jsp</result></action></package>

Action實體類須要繼承ActionSupport類而且重寫他的execute的方法(或者其它的方法,無參返回String類型而且與action標籤中method屬性相應就可以)。而且返回與result標籤name屬性相應的字串。與上面配置相應的實體類為:
public class WelcomeAction extends ActionSupport {public String execute() {return SUCCESS;}}

動態方法引動過程(DMI)
一個Action中僅能配置一個method在實際應用中十分不方便,Struts2支援在url中指定調用Action類的不同方法。格式為"Action名!方法名"。

在使用此功能前須要在struts.xml中加入例如以下代碼開啟DMI:

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
之後在Action類中加入返回值為String類型的相應方法就可以輕鬆調用。


萬用字元(wildcard)
Struts2支援萬用字元操作。使得在須要配置大量action時通過約定格式降低工作量。它的使用方法是使用"*"取代easy變換的單詞,然後用{n}取出。n代表第n個萬用字元。比如一個程式須要有4個Action。名稱分別為DogAction、CatAction、BirdAction和FishAction。

假設依照之前的方法則須要配置4個action映射關係。可是使用萬用字元後僅僅須要以下一個action就可以:

<action name="buy*" class="struts.action.{1}Action"><result>/pay.jsp</result></action>
萬用字元的範圍很廣,通過action的name能夠改變method、class和result的結果等。常常使用能夠節約很多時間。可是須要事先良好的一致性格公式。


著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。

[Java Web]Struts2加起來(一個)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.