精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Struts2教程3:struts.xml常用配置解析

開發 開發工具 后端
Struts是Apache基金會Jakarta項目組的一個Open Source項目,它采用MVC模式,能夠很好地幫助Java開發者利用J2EE開發Web應用。和其他的Java架構一樣,Struts也是面向對象設計,將MVC模式"分離顯示邏輯和業務邏輯"的能力發揮得淋漓盡致。Struts的目的是為了減少在運用MVC設計模型來開發Web應用的時間。你仍然需要學習和應用該架構,不過它將可以完成其中一些繁重的工作。在本系列教程中我們將學習到Struts2的各種技術。

【相關文章】

  1. Struts2教程1:***個Struts2程序
  2. Struts2教程2:處理一個form多個submit
  3. Struts2教程4:使用validate方法驗證數據
  4. Struts2教程5:使用Validation框架驗證數據
  5. Struts2教程6:在Action類中獲得HttpServletResponse對象
  6. Struts2教程7:上傳任意多個文件
  7. Struts2教程8:攔截器概述
  8. Struts2教程9:實現自已的攔截器
  9. Struts2教程10:國際化

使用<include>標簽重用配置文件

在Struts2中提供了一個默認的struts.xml文件,但如果package、action、interceptors等配置比較多時,都放到一個struts.xml文件不太容易維護。因此,就需要將struts.xml文件分成多個配置文件,然后在struts.xml文件中使用<include>標簽引用這些配置文件。這樣做的優點如下:

結構更清晰,更容易維護配置信息。

配置文件可以復用。如果在多個Web程序中都使用類似或相同的配置文件,那么可以使用<include>標簽來引用這些配置文件,這樣可以減少工作量。

假設有一個配置文件,文件名為newstruts.xml,代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
  "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  <packagename="demo"extends="struts-default">
    <actionname="submit" class="action.MoreSubmitAction">
      <resultname="save">
        /result.jsp
      </result>
      <resultname="print">
        /result.jsp
      </result>
    </action>      
  </package>  
</struts>

則struts.xml引用newstruts.xml文件的代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
  "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  <includefile="newstruts.xml"/>
  <packagename="test"extends="struts-default">
  ……
  </package>  
</struts>

大家要注意一下,用<include>引用的xml文件也必須是完成的struts2的配置。實際上<include>在引用時是單獨解析的xml文件,而不是將被引用的文件插入到struts.xml文件中。

action的別名

在默認情況下,Struts2會調用動作類的execute方法。但有些時候,我們需要在一個動作類中處理不同的動作。也就是用戶請求不同的動作時,執行動作類中的不同的方法。為了達到這個目的,可以在<action>標簽中通過method方法指定要指行的動作類的方法名,并且需要為不同的動作起不同的名子(也稱為別名)。如下面代碼所示:

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
 "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
 "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<packagename="demo"extends="struts-default">
  <actionname="test" class="action.MyAction">
  ……
  </action>      
  <actionname="my" class="action.MyAction"method="my">
  ……
  </action>      
</package>  
</struts>

上面代碼的兩個動作的class屬性都指向同一個類,name為這個類起了兩個動作別名:test和my。在動作my中,使用了method屬性指定要要運行的方法名為my。

在MyAction類中必須要有my方法,代碼如下:

packageaction;
importcom.opensymphony.xwork2.ActionSupport;
publicclassMyActionextendsActionSupport
{
  ……
  publicStringexecute()throwsException
  {
    //處理test動作的代碼
  }
  publicStringmy()throwsException
  {
     //處理my動作的代碼
  }
  ……
}

除了在struts.xml中配置別名,還可以通過請求參數來描述指定動作(并不需要在struts.xml中配置)。請求參數的格式如下:

http://localhost:8080/contextPath/actionName!method.action

關于通過請求指定動作的詳細內容,請參閱筆者寫的《Struts2教程2:處理一個form多個submit》。

#p#

為action指定參數

在struts2中還可以為action指定一個或多個參數。大家還記著struts1.x是如何設置的action參數不? 在struts1.x中可以使用<action>標簽的parameter屬性為其指定一個action參數,如果要指定多個,就只能通過逗號(,)或其他的分隔符將不同的參數隔開。而在struts2中可以通過<param>標簽指定任意多個參數。代碼如下:

<actionname="submit" class="action.MyAction">
<paramname="param1">value1</param>
<paramname="param2">value2</param>
  <resultname="save">
    /result.jsp
  </result>
 ……
</action>  

當然,在action中讀這些參數也非常簡單,只需要象獲取請求參數一樣在action類中定義相應的setter方法即可(一般不用定義getter方法)。如下面的代碼將讀取param1和param2參數的值:

packageaction;
importcom.opensymphony.xwork2.ActionSupport;
publicclassMyActionextendsActionSupport
{
  privateStringparam1;
  privateStringparam2;
  publicStringexecute()throwsException
  {
    System.out.println(param1+param2);
  }
  publicvoidsetParam1(Stringparam1)
  {
    this.param1=param1;
  }
  publicvoidsetParam2(Stringparam2)
  {
    this.param2=param2;
  }
……
} 

當struts2在調用execute之前,param1和param2的值就已經是相應參數的值了,因此,在execute方法中可以直接使用param1和param2。

選擇result類型

在默認時,標簽的type屬性值是“dispatcher”(實際上就是轉發,forward)。開發人員可以根據自己的需要指定不同的類型,如redirect、stream等。如下面代碼所示:

<result name="save"type="redirect">
  
    /result.jsp
  
</result>

這此result-type可以在struts2-core-2.0.11.1.jar包或struts2源代碼中的struts-default.xml文件中找到,在這個文件中找到<result-types>標簽,所有的result-type都在里面定義了。代碼如下:

<result-types>
   <result-typename="chain"class="com.opensymphony.xwork2.ActionChainResult"/>
   <result-typename="dispatcher"class="org.apache.struts2.dispatcher.ServletDis
patcherResult"default="true"/>
   <result-typename="freemarker"class="org.apache.struts2.views.freemarker.Free
markerResult"/>
   <result-typename="httpheader"class="org.apache.struts2.dispatcher.HttpHeader
Result"/>
   <result-typename="redirect"class="org.apache.struts2.dispatcher.ServletRedir
ectResult"/>
   <result-typename="redirectAction"class="org.apache.struts2.dispatcher.Servle
tActionRedirectResult"/>
   <result-typename="stream"class="org.apache.struts2.dispatcher.StreamResult"/

   <result-typename="velocity"class="org.apache.struts2.dispatcher.VelocityResu
lt"/>
   <result-typename="xslt"class="org.apache.struts2.views.xslt.XSLTResult"/>
   <result-typename="plainText"class="org.apache.struts2.dispatcher.PlainTextRe
sult"/>
   <!--DeprecatednameformscheduledforremovalinStruts2.1.0.ThecamelCaseversionsa
repreferred.Seeww-1707-->
   <result-typename="redirect-action"class="org.apache.struts2.dispatcher.Servl
etActionRedirectResult"/>
   <result-typename="plaintext"class="org.apache.struts2.dispatcher.PlainTextRe
sult"/>
</result-types>

全局result

有很多時候一個<result>初很多<action>使用,這時可以使用<global-results>標簽來定義全局的<result>,代碼如下:

<struts>
  <packagename="demo"extends="struts-default">
    <global-results>
      <resultname="print">/result.jsp</result>
    </global-results>
    <actionname="submit"class="action.MoreSubmitAction">
   ……
    </action>
    <actionname="my"class="action.MoreSubmitAction"method="my">
    ……
    </action>
  </package>
</struts>

如果<action>中沒有相應的<result>,Struts2就會使用全局的<result>。

【編輯推薦】

  1. Struts2教程1:***個Struts2程序
  2. Struts2教程2:處理一個form多個submit
  3. Struts2教程4:使用validate方法驗證數據
  4. Struts2教程5:使用Validation框架驗證數據
  5. Struts2教程6:在Action類中獲得HttpServletResponse對象
  6. Struts2教程7:上傳任意多個文件
  7. Struts2教程8:攔截器概述
  8. Struts2教程9:實現自已的攔截器
  9. Struts2教程10:國際化
責任編輯:楊鵬飛 來源: BlogJava
相關推薦

2009-06-25 15:26:25

Struts2教程struts.xml常

2009-06-04 08:34:24

Struts2配置struts.xml

2009-06-25 15:11:28

Struts2教程Struts2程序

2009-02-04 10:51:07

2009-06-05 10:55:07

struts2 web

2009-07-29 09:54:34

struts2和str

2009-06-03 14:19:34

Struts2Guice

2009-06-25 16:04:30

2009-02-04 15:04:13

2009-06-25 15:54:42

Struts2教程攔截器

2009-06-25 15:50:03

Struts2教程上傳任意多個文件

2009-02-04 14:00:59

2009-02-04 14:19:38

2009-06-25 15:33:12

Struts2教程使用validate驗證數據

2009-06-25 15:37:12

Struts2教程Validation框

2009-07-03 09:35:57

Struts2 JSP

2009-06-05 10:52:45

struts2深入詳解配置文件

2009-06-04 08:53:57

struts2視頻教程

2009-02-04 13:13:03

2009-06-05 10:05:50

struts menustruts2
點贊
收藏

51CTO技術棧公眾號

五月激情六月综合| 成人在线综合网| 在线国产精品播放| 特级西西444www| 久久99亚洲网美利坚合众国| 99精品国产91久久久久久 | 欧美在线日韩精品| 一级黄色片在线观看| 欧美日韩专区| 亚洲人成毛片在线播放| 国产美女视频免费看| 国精一区二区三区| 国产亚洲成av人在线观看导航| 成人性生交xxxxx网站| 日韩美女视频网站| 视频在线不卡免费观看| 亚洲高清在线观看| 999精彩视频| bl视频在线免费观看| 中国av一区二区三区| 成人在线免费网站| 一二三四区在线| 亚洲美女少妇无套啪啪呻吟| 中文字幕精品视频| 香港三级日本三级| 国产视频一区二区在线播放| 色哟哟精品一区| 日本aa在线观看| 欧美另类极品| 国产人成一区二区三区影院| 激情小说综合网| 国产jzjzjz丝袜老师水多| 日本人妖一区二区| 日本国产精品视频| 日本熟伦人妇xxxx| 欧美在线1区| 日韩在线视频线视频免费网站| 黄色正能量网站| 在线播放一区二区精品视频| 欧美久久一二三四区| 超碰网在线观看| 在线观看特色大片免费视频| 亚洲一区二区三区四区在线观看| 伊人久久av导航| 精品av中文字幕在线毛片| 成人精品鲁一区一区二区| 91热福利电影| 中文字幕在线观看视频一区| 新狼窝色av性久久久久久| 欧美激情一级二级| 国产小视频在线看| 午夜视频一区| 色综合视频一区中文字幕| 黄色片子在线观看| 中文字幕乱码亚洲无线精品一区| 中文日韩在线观看| 岛国片在线免费观看| 狠狠操综合网| 一区二区福利视频| 亚洲ⅴ国产v天堂a无码二区| 成人在线免费观看网站| 在线播放日韩欧美| 影音先锋男人资源在线观看| 欧美电影一区| 久久天天躁狠狠躁夜夜躁| 九九精品视频免费| 欧美国产高潮xxxx1819| 欧美理论片在线观看| 国产suv一区二区三区| 自拍视频亚洲| 久久久久久久97| 亚洲精品77777| 久久精品一区| 91精品久久久久久久久久久久久久| 中国黄色一级视频| 久草在线在线精品观看| 成人免费观看网站| 天天影院图片亚洲| 国产偷国产偷亚洲高清人白洁 | 天天色综合av| 久久嫩草精品久久久久| 亚洲国产一区在线| 新版中文在线官网| 五月婷婷综合网| 黑森林福利视频导航| 人人玩人人添人人澡欧美| 欧美一区2区视频在线观看| 好吊操视频这里只有精品| 精品综合久久88少妇激情| 亚洲男人天堂手机在线| 国产精品视频一区二区在线观看| 国内精品亚洲| 国产精品高潮粉嫩av| 国产suv精品一区二区69| 波多野洁衣一区| 无遮挡亚洲一区| 免费在线播放电影| 色av一区二区| 操人视频免费看| 亚洲第一二三区| 另类少妇人与禽zozz0性伦| 日本五十路女优| 麻豆一区二区在线| 国内精品一区二区| 最近高清中文在线字幕在线观看| 亚洲最新视频在线观看| 免费激情视频在线观看| 一区二区三区亚洲变态调教大结局 | 韩国一区二区三区视频| 亚洲精品视频在线观看视频| 精品国产欧美日韩不卡在线观看 | 日韩av片网站| 国产精品色在线网站| 中文字幕国产精品| 欧美啪啪小视频| 国产精品77777竹菊影视小说| 欧洲亚洲一区二区三区四区五区| 亚洲男同gay网站| 欧美性生活一区| 亚洲精品乱码久久久久久久| 图片区亚洲欧美小说区| 国产99久久精品一区二区| 亚洲精品.www| 亚洲欧美在线另类| 欧美三级理论片| 日韩欧美美女在线观看| 色综合天天综合网国产成人网| 中文字幕a级片| 91老师国产黑色丝袜在线| 草草草视频在线观看| 全球中文成人在线| 伊人青青综合网站| 波多野结衣视频网站| 成人亚洲一区二区一| 中文视频一区视频二区视频三区| 成人午夜精品| 亚洲人成亚洲人成在线观看| 成人免费看片98欧美| 不卡电影一区二区三区| 麻豆映画在线观看| 成人动漫视频在线观看| 日韩在线欧美在线| 一级做a爱片久久毛片| 国产欧美日韩精品a在线观看| 日批视频在线免费看| 人人精品亚洲| 2019中文在线观看| 青青国产在线| 欧美日韩亚洲系列| 亚洲一区二区三区综合| 99精品久久久| 蜜桃网站成人| 神马久久资源| 在线视频欧美日韩| 伊人影院中文字幕| 成人免费在线视频| 一级黄色免费毛片| 欧美色123| 国产传媒欧美日韩| 2020国产在线| 日韩国产精品视频| 久久夜色精品国产噜噜亚洲av| 91丝袜国产在线播放| 欧洲av无码放荡人妇网站| 免费av一区二区三区四区| 国产精品成人一区| 快射视频在线观看| 日韩美女视频在线| 欧美一级视频免费观看| 久久久午夜精品| 中文字幕av专区| 欧美大人香蕉在线| 97久久天天综合色天天综合色hd | 91高清视频在线免费观看| 亚洲欧美一区二区三| 91九色02白丝porn| 国产成人av免费在线观看| 国产福利91精品一区| 麻豆tv在线播放| 国产亚洲欧美日韩在线观看一区二区 | 精品久久久久久亚洲| 亚洲天堂av在线| 最近2019年日本中文免费字幕 | 色8久久影院午夜场| 日韩天堂在线视频| 亚洲精品字幕在线| 日本二三区不卡| 日日噜噜夜夜狠狠久久波多野| 成人免费av网站| 日本xxxx黄色| 亚洲小说欧美另类婷婷| 日本成人黄色| 亚洲精品午夜| 国产精品igao视频| aaa大片在线观看| 亚洲欧美制服中文字幕| 夜夜嗨aⅴ一区二区三区| 亚洲a一区二区| 欧美一区二区三区粗大| 成人国产精品免费观看动漫| 成人3d动漫一区二区三区| 午夜亚洲福利| 偷拍视频一区二区| 成人爽a毛片| 国产欧美在线观看| 国产乱码精品一区二三赶尸艳谈| 在线国产精品播放| 亚欧洲精品视频| 日韩欧美国产一区二区在线播放 | 欧美日韩国产色站一区二区三区| 久久久久久久国产视频| 中文字幕免费不卡| 亚州av综合色区无码一区| 国内精品伊人久久久久av一坑| 国产在线精品91| 中文字幕免费一区二区三区| 色乱码一区二区三在线看| 国产伦理久久久久久妇女| 亚洲wwwav| 99久久亚洲国产日韩美女| 午夜精品一区二区三区在线视| 国产精品久久久久久福利| 亚洲天堂av在线免费观看| 二区三区在线视频| 日韩一区二区视频在线观看| 亚洲天堂国产精品| 色狠狠一区二区三区香蕉| 国产一级特黄毛片| 综合色中文字幕| 国产三级精品三级观看| 久久久久久久久久电影| 亚洲一区二区三区综合| 波多野结衣在线一区| 一二三区视频在线观看| 精品亚洲国内自在自线福利| 中文字幕一区二区三区四区在线视频| 国产日韩欧美一区| 欧美成人三级在线视频| 在线播放一区| 男女猛烈激情xx00免费视频| 狠狠入ady亚洲精品| av 日韩 人妻 黑人 综合 无码| 国产高清一区| 熟女熟妇伦久久影院毛片一区二区| 国产精品一在线观看| 日本一区二区三区www| 亚洲小说图片视频| 欧美日韩精品一区| 九九综合在线| 日本精品免费| 国产真实有声精品录音| 日韩精品久久一区二区三区| 视频一区在线观看| 视频一区视频二区视频三区高| 国产亚洲电影| 亚洲综合欧美日韩| 国产精品国产一区| 亚洲成人动漫在线| 欧美日本亚洲韩国国产| 亚洲国产一二三精品无码 | www.午夜精品| 精品自拍一区| 欧美日韩ab片| 黑森林国产精品av| 热99在线视频| 97人人做人人爽香蕉精品| 国产一区欧美二区三区| av日韩在线免费观看| av一区观看| 日韩mv欧美mv国产网站| 欧美一进一出视频| 99久久99久久精品国产片桃花| 国产成人精品免费看在线播放 | 国产精品高清无码| 欧美丰满美乳xxx高潮www| 精品国产九九九| 日韩电影中文字幕在线观看| 欧美男男激情freegay| 色偷偷888欧美精品久久久| 亚洲性图自拍| 欧美一区二粉嫩精品国产一线天| 日韩国产网站| 91免费观看网站| 欧美在线关看| 一区二区在线观| 亚洲视频www| www.com操| 粉嫩在线一区二区三区视频| 中文字幕在线看高清电影| 亚洲视频一二三区| 久久久精品免费看| 91精品国产一区二区| 清纯唯美亚洲色图| 欧美巨猛xxxx猛交黑人97人| 手机在线观看av| 91久久久久久久久久久| 亚洲va久久久噜噜噜久久| 一级做a爰片久久| 亚洲一区二区网站| 中文字幕在线视频一区二区三区 | 亚洲色图 激情小说| 亚洲国产一区二区a毛片| 中文字幕人妻一区二区三区视频| 欧美电影免费观看完整版| 高清美女视频一区| 久久久视频精品| 五月天色综合| 日本一区二区三区www| 尤物精品在线| 福利视频999| 国产日韩精品一区| 国产一级生活片| 91精品国产福利| yourporn在线观看中文站| 午夜精品蜜臀一区二区三区免费| 日韩在线你懂得| 视频一区二区三区在线观看| 日韩视频久久| 91人妻一区二区| 亚洲免费观看高清| 中文字幕免费在线看| 日韩精品免费在线视频观看| 91高清在线观看视频| 国产欧美一区二区三区久久| 久久不见久久见中文字幕免费 | 国产三线在线| 成人h视频在线| 久久亚洲成人| 三级在线免费看| 久久嫩草精品久久久久| 日韩av大片在线观看| 亚洲成色www8888| 牛牛在线精品视频| 91影视免费在线观看| 日本在线电影一区二区三区| 波多野结衣作品集| 久久一区二区视频| 日韩视频在线观看一区| 一级特黄色大片| 久久精品99久久久久久久久| 国产成人福利夜色影视| 亚洲看片网站| 麻豆91精品视频| 国产精品麻豆免费版现看视频| 在线观看欧美精品| 搞黄视频免费在线观看| 国产精品高潮呻吟视频| 日韩成人三级| 中文字幕第17页| 亚洲视频免费看| av网站免费大全| 精品中文字幕在线2019| jizz性欧美2| 欧美亚洲日本一区二区三区| 成人97人人超碰人人99| 亚洲精品www久久久久久| 日韩av综合网站| 在线亚洲人成| 日韩精品资源| 免费成人你懂的| 黄色录像免费观看| 欧美成人video| 多野结衣av一区| 日韩av高清在线播放| 另类综合日韩欧美亚洲| 午夜爽爽爽男女免费观看| 日韩欧美在线影院| 91在线三级| 欧洲久久久久久| 国产一区二区视频在线| 久久这里只有精品国产| 亚洲精品美女网站| 亚洲四虎影院| 亚洲免费视频播放| 99re这里都是精品| 波多野结衣午夜| 久久夜色精品亚洲噜噜国产mv| aaa国产精品视频| 丰满人妻中伦妇伦精品app| 国产精品久久三区| 成人免费视频国产| 国产精品久久97| 综合久久久久| 免费黄色在线视频| 欧美日产在线观看| 久草在线资源站手机版| 少妇特黄a一区二区三区| 国产另类ts人妖一区二区| 国产成人无码精品| 久久精品电影网| 欧美精品密入口播放| 性生活免费在线观看| 亚洲国产aⅴ天堂久久| av资源种子在线观看| 成人国产一区二区| 蜜桃精品视频在线观看| 国产无码精品视频| 日韩亚洲欧美成人| 私拍精品福利视频在线一区| 亚洲色图偷拍视频|