国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
簡(jiǎn)述STRUTS2 Convention零配置
簡(jiǎn)述STRUTS2 Convention零配置
 
從struts2.1開(kāi)始,struts2不再推薦使用Codebehind作為零配置插件,而是改為使用Convention插件來(lái)支持零配置,和Codebehind相比,Convention插件更徹底,該插件完全拋棄配置信息,不僅不需要是使用struts.xml文件進(jìn)行配置,甚至不需要使用Annotation進(jìn)行配置,而是由struts2根據(jù)約定自動(dòng)配置。
如何使用Convention
1.       將struts-Convention-plugin-2.1.6.jar文件復(fù)制到WEB-INF/lib路徑下
2.       對(duì)于Convention插件而言,它會(huì)自動(dòng)搜索位于action,actions,struts,struts2包下的所有java類,Convention插件會(huì)把如下兩種java類當(dāng)成Action處理:
1)  所有實(shí)現(xiàn)了com.opensymphony.xwork2.Action的java類
2)  所有類名以Action結(jié)尾的java類
3.       Convention插件還允許設(shè)置如下三個(gè)常量:
1)  struts.Convention.exclude.packges:指定不掃描哪些包下的java類,位于這些包結(jié)構(gòu)下的java類將不會(huì)自動(dòng)映射成Action;
2)  struts.convention.package.locators:Convention插件使用該常量指定的包作為搜尋Action的根包。對(duì)于actions.fore.LoginAction類,按約定原本應(yīng)映射到/fore/login;如果將該常量設(shè)為fore,則該Action將會(huì)映射到/login
3)  struts.convention.action.packages:Convention插件以該常量指定包作為根包來(lái)搜索Action類。Convention插件除了掃描action,actions,struts,struts2四個(gè)包的類以外,還會(huì)掃描該常量指定的一個(gè)或多個(gè)包,Convention會(huì)試圖從中發(fā)現(xiàn)Action類。
注意:struts.convention.package.locators和struts.convention.action.packages兩個(gè)常量的作用比較微妙,開(kāi)發(fā)者在利用這兩個(gè)常量時(shí)務(wù)必小心。
如:下面Action所在包被映射的命名空間如下:
com.fun.actions.LoginAction 映射到   /
com.fun.actions.myoffice.CarInfoAction 映射到 /myoffice
com.fun.struts.myoffice.EntINfoAction 映射到 /myofiice
4.       映射Action的name時(shí),遵循如下兩步規(guī)則:
1)  如果該Action類名包含Action后綴,將該Action類名的Action后綴去掉。否則不做任何處理。
2)  將Action類名的駝峰寫法(每個(gè)單詞首字母大寫、其他字母小寫的寫法)轉(zhuǎn)成中畫線寫法(所有字母小寫,單詞與單詞之間以中畫線隔開(kāi))
如:LoginAction映射的Acion的name屬性為login,GetBooks映射的Action的name的屬性為get-books,AddEmployeeAction映射的Action的name屬性為add-employee
5.       默認(rèn)情況下。Convention總會(huì)到WEB應(yīng)用的WEB-INF/content路徑下定位物理資源,定位資源的約定是:actionRUL+resultCODE+suffix。當(dāng)某個(gè)邏輯視圖找不到對(duì)應(yīng)的試圖資源時(shí),Convention會(huì)自動(dòng)視圖使用ActionURL+suffix作為物理視圖資源。
       如:actions.fore.LoginAction 返回success字符串時(shí),Convention優(yōu)先考慮使用WEB-INF/content/fore目錄下的login-success.jsp作為視圖資源。如果找不到該文件,login.jsp也可作為對(duì)應(yīng)的試圖資源。如果返回input字符串,Convention會(huì)將WEB-INF/content/fore里面查找login-input.jsp
6.       為了看到struts2應(yīng)用里的Action等各種資源的影射情況,struts2提供了Config Browser插件。使用方法,將struts2-config-browser-plugin-2.1.6.jar文件復(fù)制到struts2應(yīng)用的WEB-INF\lib目錄中。
打開(kāi)首頁(yè)地址:http://localhost:8080/應(yīng)用名字/config-browser/actionNames.action這里可以看到Config Browser插件的首頁(yè)。
注意:這里不管開(kāi)發(fā)者是否使用struts.xml文件進(jìn)行配置,一樣可以看到struts的配置信息。
7.Action鏈的約定
如果希望一個(gè)Action處理結(jié)束后不是進(jìn)入一個(gè)試圖頁(yè)面,而是進(jìn)行另一個(gè)Action形成的Action鏈。通過(guò)Convention插件則只需遵守如下三個(gè)約定即可。
1)  第一個(gè)Action返回的邏輯視圖字符串沒(méi)有對(duì)應(yīng)的視圖資源
2)  第二個(gè)Action與第一個(gè)Action處在同一個(gè)包下
3)  第二個(gè)Action影射的URL為:firstActionURL+resultCODE
如,第一個(gè)Action為OneAction,里面有個(gè)方法返回為“two”,那么就得保證,WEB-INF/content/下沒(méi)有one.jsp或one-two.jsp 對(duì)于第二個(gè)action 它的名字應(yīng)該是OneTwoAction,而對(duì)應(yīng)的url應(yīng)該是:“one-two.action”
注意:由于Convention插件根據(jù)Action和jsp頁(yè)面來(lái)動(dòng)態(tài)生成映射的,因此不管是Acion的改變,還是JSP頁(yè)面的改變都需要Convention插件重新加載映射。那么只要我們?yōu)閟truts2應(yīng)用配置如下兩個(gè)常量就可以了。
<!--配置struts2應(yīng)用于開(kāi)發(fā)模式--!>
<constant name=”struts.devMode” value=”true”/>
<!—配置Convention插件自動(dòng)重加載映射--!>
<constant name=”struts.convention.classes.reload” value=”true”/>
幾個(gè)重要的常量
struts.convention.action.disableJarScanning---是否從包中搜索Action
struts.convention.action.package--------Convention插件以該常量指定包作為根包
struts.convention.result.path ---設(shè)置Convention插件定位視圖資源的根路徑。默認(rèn)值為/WEB-INF/content
struts.convention.result.flatLayout—如果是為false則可以將試圖放置Action對(duì)應(yīng)的目錄下,無(wú)需放入WEB-INF/content
7.       Convention的Annotation
1)  與Action相關(guān)的兩個(gè)Annotation是@Action 和@Actions
2)  @Action中可指定一個(gè)value屬性。類似于指定<action name=””/>屬性值
3)  @Action中還可以指定一個(gè)params屬性,該屬性是一個(gè)字符串?dāng)?shù)組,用于該Acion指定的參數(shù)名和參數(shù)值。params屬性應(yīng)遵守如下格式:{“name1”,”value1”,”name2”,”value2”}
4)  @Actions 也用于修飾Action類里的方法,用于將該方法映射到多個(gè)URL.@Actions用于組織多個(gè)@Action.因此它可將一個(gè)方法映射成多個(gè)邏輯Action。
如:
package com.fun.actions;
 
 
 
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
 
import com.fun.service.LoginService;
import com.opensymphony.xwork2.ActionSupport;
 
public class LoginAction extends ActionSupport {
    private String str;
    @Actions({
       @Action(value="login1",params={"str","這是已經(jīng)注入的了!"}),
       @Action(value="login2")
      
    })
    public String login(){
       return "str";
    }
    @Action(value="ggg")
    public String abc(){
       return "abc";
    }
    public String getStr() {
       return str;
    }
    public void setStr(String str) {
       this.str = str;
    }
   
}
我們可以通過(guò)/login1.action訪問(wèn),而在訪問(wèn)時(shí),str這個(gè)屬性已經(jīng)有值,為str=”這是已經(jīng)注入的!” 返回的視圖是login1-str.jsp
當(dāng)我們用/login2.action訪問(wèn)時(shí),str的值為null。返回的視圖為 login2-str.jsp
而我們通過(guò)/ggg.action調(diào)用的是abc()方法,返回的視圖為/ggg-abc.jsp
8.       與Result配置相關(guān)的Annotation
1)@ResultPath @Result 和Results
2)@Results用于組織多個(gè)@Result因此它只需指定一個(gè)value屬性值,該value屬性值為多個(gè)@Result
3)@Result相當(dāng)于struts.xml文件中的<result/>元素的做喲歐諾個(gè)。使用@Result必須指定一個(gè)name屬性,相當(dāng)于<result name=””/>另外,它還有幾個(gè)可選的屬性。
     ☆ type 相當(dāng)于<result type=””/>指定返回視圖資源的類型
     ☆ location 相當(dāng)于<result>…..</result>中間部分,用于指定實(shí)際視圖位置
     ☆ params:該屬性相當(dāng)于<result/>元素里多個(gè)<param../>子元素的作用,用于為該Result指定參數(shù)值。該屬性應(yīng)滿足{“name1”,”value1”,”name2”,”value2”}格式
4)@Result有以下兩種用法
1 Action級(jí)的Result映射:以@Actions組合多個(gè)@Action后修飾的Action類。這種Result映射對(duì)該Action里的所有方法都有效。
2方法級(jí)Result映射:將多個(gè)@Result組成數(shù)組后作為@Action的results屬性值。這種Result映射僅對(duì)被修飾的方法有效。
5)@ResultPath則用于修飾包和Action類,用于改變被修飾Action所對(duì)應(yīng)的物理視圖資源的根路徑。舉例說(shuō):默認(rèn)情況下,Convention都會(huì)到WEB-INF/content路徑下找物理視圖資源,一旦我們使用@ResultPath(“/abc”)修飾該Action,系統(tǒng)將回到abc目錄下尋找物理視圖資源。舉例:在默認(rèn)情況下,Convention都會(huì)到WEB-INF/content路徑下需找物理視圖資源,一旦我們使用@ResultPath(“/abc”)修飾該Action,系統(tǒng)會(huì)到abc目錄下尋找物理視圖資源。
 
9 與包和命名空間相關(guān)的Annotation:
   @Namespace:修飾Action類或其所在的包。該Annotation中指定一個(gè)value屬性值,用于指定被修飾的Action所在的命名空間
  @Namespaces:修飾Action類或其所在的包,用于組合多個(gè)@Namespace
  @ParentPackage: 用于指定被修飾的Action所在包的夫包。
10 異常處理相關(guān)的Annotation
  @ExceptionMappings 用于組織多個(gè)@ExceptionMapping,因此它只需指定一個(gè)value屬性值,該value屬性值為多個(gè)@ExceptionMapping。
 @ExceptionMapping 用于定義異常類和物理視圖之間的對(duì)應(yīng)關(guān)系,也相當(dāng)于struts.xml文件里<exception-mapping../>元素的作用 使用時(shí),必須注意以下兩個(gè)屬性:
  exception: 用于指定異常類
  result : 用于指定邏輯視圖
@ExceptionMpping有如下兩種用法
   Action級(jí)的異常定義:以@ExceptionMappings組合多個(gè)@ExceptionMapping后修飾的Action類。這種異常定義對(duì)Action中的所有方法有效
  方法級(jí)的異常定義: 將多個(gè)@ExceptionMapping組成數(shù)組后作為@Action的exceptionMappings屬性值,這種異常定義僅對(duì)被修飾的方法有效。
 
11.攔截器配置相關(guān)的Annotation
 與攔截器配置的Annotation有@InterceptorRef、@InterceptorRefs和@DefaultInterceptorRef
@InterceptorRefs用于組織多個(gè)@InterceptorRef,因此它只需要指定一個(gè)value屬性值,該value屬性值為多個(gè)@InterceptorRef
@InterceptorRef用于為指定Action引用lanjieq或者是攔截器棧。也就相當(dāng)于strut.xml中位于<action../>元素內(nèi)部的<interceptor-ref../>子元素的作用。使用@InterceptorRefAnnotation時(shí),必須制定一個(gè)value屬性,用于指定所引用的攔截器或攔截器棧的名字。相當(dāng)于<interceptor-ref../>子元素里name屬性的作用。
 
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/Beacher_Ma/archive/2009/10/27/4733227.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Struts2 常見(jiàn)插件一覽
struts2采用convention
Struts2注解使用說(shuō)明
struts2------Convention Plugin
Struts2利用convention
深入Struts 1.1
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服