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

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

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

    隨筆 - 72  文章 - 28  trackbacks - 0
    <2014年1月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(4)

    隨筆分類(66)

    隨筆檔案(72)

    文章檔案(19)

    收藏夾

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    使用注解來(lái)配置Action的最大好處就是可以實(shí)現(xiàn)零配置,但是事務(wù)都是有利有弊的,使用方便,維護(hù)起來(lái)就沒(méi)那么方便了。

     

    要使用注解方式,我們必須添加一個(gè)額外包:struts2-convention-plugin-2.x.x.jar。

     

    雖說(shuō)是零配置的,但struts.xml還是少不了的,配置如下:

     

    <?xml version="1.0" encoding="UTF-8" ?> 

    <!DOCTYPE struts PUBLIC 

        "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 

        "http://struts.apache.org/dtds/struts-2.1.7.dtd"> 

       

    <struts>   

        <!-- 請(qǐng)求參數(shù)的編碼方式--> 

        <constant name="struts.i18n.encoding" value="UTF-8"/> 

        <!-- 指定被struts2處理的請(qǐng)求后綴類型。多個(gè)用逗號(hào)隔開(kāi)--> 

        <constant name="struts.action.extension" value="action,do,htm"/> 

        <!-- 當(dāng)struts.xml改動(dòng)后,是否重新加載。默認(rèn)值為false(生產(chǎn)環(huán)境下使用),開(kāi)發(fā)階段最好打開(kāi)  --> 

        <constant name="struts.configuration.xml.reload" value="true"/> 

        <!-- 是否使用struts的開(kāi)發(fā)模式。開(kāi)發(fā)模式會(huì)有更多的調(diào)試信息。默認(rèn)值為false(生產(chǎn)環(huán)境下使用),開(kāi)發(fā)階段最好打開(kāi)  --> 

        <constant name="struts.devMode" value="false"/>   

        <!-- 設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容。默認(rèn)值為true(生產(chǎn)環(huán)境下使用),開(kāi)發(fā)階段最好關(guān)閉  --> 

        <constant name="struts.serve.static.browserCache" value="false" /> 

        <!-- 指定由spring負(fù)責(zé)action對(duì)象的創(chuàng)建    

        <constant name="struts.objectFactory" value="spring" /> 

        --> 

        <!-- 是否開(kāi)啟動(dòng)態(tài)方法調(diào)用--> 

        <constant name="struts.enable.DynamicMethodInvocation" value="false"/> 

    </struts> 

    action類的注解:

     

     

    package com.tjcyjd.web.action;   

       

    import org.apache.struts2.convention.annotation.Action;   

    import org.apache.struts2.convention.annotation.ExceptionMapping;   

    import org.apache.struts2.convention.annotation.ExceptionMappings;   

    import org.apache.struts2.convention.annotation.Namespace;   

    import org.apache.struts2.convention.annotation.ParentPackage;   

    import org.apache.struts2.convention.annotation.Result;   

    import org.apache.struts2.convention.annotation.Results;   

       

    import com.opensymphony.xwork2.ActionSupport;   

       

    /** 

     * Struts2基于注解的Action配置

     *  

     */   

    @ParentPackage("struts-default") 

    @Namespace("/annotation_test") 

    @Results( { @Result(name = "success", location = "/main.jsp"), 

            @Result(name = "error", location = "/error.jsp") }) 

    @ExceptionMappings( { @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") }) 

    public class LoginAction extends ActionSupport { 

        private static final long serialVersionUID = 2730268055700929183L;  

        private String loginName;   

        private String password;   

       

        @Action("login") //或者寫成  @Action(value = "login")  

        public String login() throws Exception {   

       

            if ("yjd".equals(loginName) && "yjd".equals(password)) {   

                return SUCCESS;   

            } else {   

                return ERROR;   

            }   

        }   

        @Action(value = "add", results = { @Result(name = "success", location = "/index.jsp") })   

        public String add() throws Exception {   

            return SUCCESS;   

        }   

        public String getLoginName() {   

            return loginName;   

        }   

        public void setLoginName(String loginName) {   

            this.loginName = loginName;   

        }   

        public String getPassword() {   

            return password;   

        }   

        public void setPassword(String password) {   

            this.password= password;   

        }   

    這樣就完成了一個(gè)基于注解的action配置。

     

    總結(jié)常用的注解如下:

     

    Namespace:指定命名空間。

    ParentPackage:指定父包。

    Result:提供了Action結(jié)果的映射。(一個(gè)結(jié)果的映射)

    Results:“Result”注解列表

    ResultPath:指定結(jié)果頁(yè)面的基路徑。

    Action:指定Action的訪問(wèn)URL。

    Actions:“Action”注解列表。

    ExceptionMapping:指定異常映射。(映射一個(gè)聲明異常)

    ExceptionMappings:一級(jí)聲明異常的數(shù)組。

    InterceptorRef:攔截器引用。

    InterceptorRefs:攔截器引用組。

    posted on 2014-01-09 16:20 kelly 閱讀(202) 評(píng)論(0)  編輯  收藏 所屬分類: java 框架
    主站蜘蛛池模板: 毛片免费观看网址| 13小箩利洗澡无码视频网站免费| 亚洲 无码 在线 专区| 免费看片A级毛片免费看| 国产精品免费观看久久| 免费看国产成年无码AV片| 日韩精品免费一级视频| 黄页网站免费观看| 在线免费一区二区| 免费A级毛片无码A| 57PAO成人国产永久免费视频 | 国产免费小视频在线观看 | 91嫩草私人成人亚洲影院| 久久亚洲一区二区| 亚洲av无码乱码在线观看野外 | 人成午夜免费大片在线观看| 免费看黄网站在线看 | 亚洲国产精品一区| 亚洲视频在线不卡| 亚洲精品制服丝袜四区| 免费看AV毛片一区二区三区| 222www在线观看免费| 国产在线观看片a免费观看| 成人免费淫片在线费观看| 午夜亚洲福利在线老司机| 无码中文字幕av免费放| 日韩免费高清视频网站| 免费观看AV片在线播放| 99热精品在线免费观看| 精品无码免费专区毛片| 免费毛片在线视频| 亚洲一区无码精品色| 亚洲一区二区在线免费观看| 亚洲色大成网站WWW国产| 欧洲美女大片免费播放器视频| 亚洲а∨精品天堂在线| 亚洲色大成网站www永久网站| 亚洲综合综合在线| 亚洲国产成人无码AV在线影院| 亚洲综合校园春色| 无遮挡a级毛片免费看|