<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Starting Struts2--Core Components(2)

    Posted on 2007-08-07 10:45 puras 閱讀(1085) 評論(0)  編輯  收藏 所屬分類: Struts2.0

    The Package Tag:

    <package … />被用于配置集合,以便于共享屬性,例如攔截器棧或是URL命名空間.通常它由action的配置組成,但它可以包含任何類型的配置信息.它對隔離功能的組織也非常有用,可以更進一步,將其分成不同的配置文件.

    這個標簽有如下屬性:

    .name--開發人員為包指定的唯一的名稱
    .extends--此包將擴展的包的名稱;擴展包里的所有配置信息(包含action配置),在新包里都是可用的,在新的命名空間之下.
    .namespace--命名空間提供了一個URL到包的映射.例如,兩個不同的包,命名空間屬性分別是"package1"和"package2",URL看起來則是"/myWebApp/package1/my.action"和"/myWebApp/package2/my.action".
    .abstract--如果這個屬性的值為"true",這個包則是真正的配置組,并且actions的配置將不能通過包名訪問.

    確定選擇正確的父類包是非常重要的,以便一些必要的被預先配置的特征可供你使用.大多數的時候,這個父包都將是"struts-default.xml"配置文件中的"struts-default"包.然而,當你使用插件時,它將會不同.這時,你將需要從插件的文檔中查換你所需要的父類包的名稱.

    在本章剩余的部分,將討論包含在包標簽內的配置信息.

    這里還有兩個額包的配置元素可以在<struts>標簽內使用.它們是<bean ... />和<constant … />標簽.這些標簽提供了更高級的路徑來重新定義框架.我們將在下一章討論插件的時候,再來討論這些標簽的用法和配置方法.

    Actions

    Actions是大多數WEB應用框架中的基本概念,并且它們是來自用戶的與HTTP相關請求的最基礎的工作單元.

    在Struts2中,action有兩種不同的方式被使用.

    Single Result

    第一,并且是action的常用法,它完成工作,并總是返回一個結果.這種情況下,action看起來是這樣的:

    1class MyAction {
    2    public void String execute() throws Exception {
    3        return "success";
    4    }

    5}

     


    有幾件事值得注意.第一,action類不需要擴展另一個類并且它也不需要實現任何接口.對任何人來說,這個類就是一個簡單的POJO.

    第二,這個類里有一個名為"execute"的方法.這個名稱是一個習慣用法.如果你想使用其他的名稱而不是"execute",僅僅需要更改一下action的配置文件.無論這個方法的名稱是什么,它都將返回一個字符串的結果代碼.Actions配置文件將匹配這個action返回的結果代碼到一個特定的結果,其呈現給用戶.如果需要,這個方法同樣可以拋出一個異常.

    簡單的action的配置看起來是這樣的:

    1<action name="my" class="com.fdar.infoq.MyAction" >
    2    <result>view.jsp</result>
    3</action>


    屬性"name"提供了執行action的URL信息,在這里,URL則是"/my.action".擴展名".action"在"struts.properties"配置文件里配置.屬性"class"提供了action所執行的完整的包和類名.

    Multiple Results

    接下來,稍微復雜,action可以根據邏輯的結果返回不同的結果.與早先使用的相似的類看起來如下:

     1class MyAction {
     2    public void String execute() throws Exception {
     3        if( myLogicWorked() ) {
     4            return "success";
     5        }
     else {
     6            return "error";
     7        }

     8    }

     9}

    10



    既然現在可以返回兩個不同的結果,我們則需要為每種情況配置一個結果返回給用戶.現在,配置將變成:

    1<action name="my" class="com.fdar.infoq.MyAction" >
    2    <result>view.jsp</result>
    3    <result name="error">error.jsp</result>
    4</action>



    這里為結果代碼引入了一個新的"name"屬性.事實上,它是始終存在的.這個值(在第一個結果配置中)如果開發者沒有提供,則使用默認值"success".

    在上面的部分,我們看到了為action確定結果時使用常用的方法.然而,這里還有四種額外的選項可供您使用:
    1.action方法返回一個字符串 - 這個被返回的字符串匹配在"struts.xml"配置文件中的一個action的配置.這個在上面的例子中展示過了.
    2.代碼被之后的插件所利用 - 當代碼被之后的插件使用時,視圖模版則是使用action名稱和action返回的結果字符串相連接而創建的.例如,如果URL是"/adduser.action",并且action返回的是"success",此時,"/adduser-success.jsp"將被呈現組用戶.更多此方面的信息請查看
    http://struts.apache.org/2.x/docs/codebehind-plugin.html.
    3.使用@Result注釋 - action類可以使用@Results和@Result注釋來注釋多個不同的結果.Action返回的字符串需要匹配上一個注釋配置結果.
    4.Action返回一個Result類的實例 - Action可以不需要返回一個字符串,替代的方案是返回一個配置好并可被使用的Result類的實例.


    上一章:Starting Struts2--Core Components(1)
    下一章:Starting Struts2--Core Components(3)

    posts - 47, comments - 124, trackbacks - 0, articles - 0

    Copyright © puras

    主站蜘蛛池模板: 亚洲视频日韩视频| 久久久久亚洲AV无码永不| 亚洲色偷偷色噜噜狠狠99网| 成人免费黄色网址| 亚洲日韩乱码久久久久久| 最好看最新的中文字幕免费| 亚洲AV人无码综合在线观看| 日本高清高色视频免费| 亚洲酒色1314狠狠做| 亚洲人成网站免费播放| 丁香婷婷亚洲六月综合色| 午夜男人一级毛片免费| 美美女高清毛片视频黄的一免费 | 33333在线亚洲| 四虎国产精品免费久久| 亚洲av无码专区在线电影天堂| 国产一精品一aⅴ一免费| 国产精品高清免费网站| 亚洲91av视频| 免费中文熟妇在线影片 | 精品国产亚洲男女在线线电影| 国产福利在线观看永久免费| 亚洲成AV人片天堂网无码| 最近免费中文字幕大全高清大全1| 亚洲精品午夜在线观看| 四虎成人免费网站在线| 五月天国产成人AV免费观看| 久久精品国产亚洲AV麻豆不卡| 成人在线免费看片| 在线91精品亚洲网站精品成人| 亚洲日韩中文无码久久| 永久免费的网站在线观看| 免费国产污网站在线观看不要卡| 亚洲国产二区三区久久| 在线观看人成网站深夜免费| 亚洲免费无码在线| 亚洲人成网站在线观看播放动漫| 免费播放春色aⅴ视频| 午夜视频在线免费观看| 亚洲av无码专区国产不乱码| 国产亚洲精品自在久久|