日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Struts2權(quán)威指南(完整版)含源碼

Struts2權(quán)威指南里介紹,并結(jié)合筆者在此之前也用過webwork和struts1,不過還是對webwork更熟一些,好在struts2比較接近webwork,所以學習成本相對不高,struts2的好處就不說了,說說差異吧。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),來安企業(yè)網(wǎng)站建設(shè),來安品牌網(wǎng)站建設(shè),網(wǎng)站定制,來安網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,來安網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1、相對struts1而言,沒有了formbean,表單代碼不需要一定要使用struts提供的html標簽,一般的html表單標簽照樣可以使用,耦合度學習成本都低了很多。想想struts1,不用它自身提供的html標簽,表單元素就不能注入,除action外,還得另外再寫一個formbean,而且只能注入java基本數(shù)據(jù)類型,代碼冗余太多,配置太復雜;

2、之前使用struts1時,除標簽使用不習慣外,就是對象的屬性注入了,struts2終于可以使用(對象.屬性)的方式進行注入,例:< INPUT name=picture.id>,方便?。?!

3、action不用繼承任何父類,也不用實現(xiàn)任何接口,相當于一個簡單的對象了,這比webwork高級了。從頁面?zhèn)飨碌膮?shù)以及從action傳到頁面的參數(shù),都是通過攔截器完成的。以下是常用的幾種實現(xiàn)action的方式,當然也有其他方式,具體可以看看API。

1) Action可以不用繼承任何父類實現(xiàn)任何接口,不用與Servlet API耦合,也不用與struts2 API耦合可以只是一個普通的pojo,包含getter和setter方法以及execute方法。運用struts2的攔截器機制,負責解析用戶的請求參數(shù),并將請求參數(shù)賦值給Action對應的屬性。但,這種action類沒有與javabean交互,沒有將業(yè)務邏輯操作的結(jié)果顯示給客戶端。

2) 接口Action,這個接口只定義execute方法和5個標準字符串常量:SUCCESS\NONE\ERROR\INPUT\LOGIN,可以簡化execute方法的返回值。

3) 繼承ActionSupport,ActionSupport是個工具類,已經(jīng)實現(xiàn)了Action接口,還實現(xiàn)了Validateable接口,提供了數(shù)據(jù)校驗功能。具體可以看API文檔。重寫Validateable接口中定義的validate方法,如果表單輸入錯誤,則將錯誤添加到ActionSupport的fieldErrors中,然后通過OGNL表達式輸出。validate方法在execute方法之前執(zhí)行,數(shù)據(jù)校驗錯誤,請求將被轉(zhuǎn)發(fā)到input邏輯試圖處。當然,也可不重寫validate方法,運用配置文件進行數(shù)據(jù)校驗。此外,ActionSupport提供了國際化信息的能力getText。

4、List元素類型的注入,webwork提供了數(shù)組類型的輸入,但是對象List的注入不行。舉個簡單的例子,上傳圖片時,用戶可能會一次性上傳一張,也可能會一次性就上傳n張,不確定的對象個數(shù)。

1)private List< PICTURE> pictureList; //圖片對象list
           圖片1< INPUT name=pictureList[0].description>
           圖片2< INPUT name=pictureList[1].description>
           輸出:< ?xml:namespace prefix = ww />
< ww:iterator value="pictureList">< ww:property value="description">< /ww:property>< /ww:iterator>
2)private String[] description;   //字符串數(shù)組
          描述1< INPUT name=description>
          描述2< INPUT name=description>
          輸出:< ww:iterator value="description">< ww:property>< /ww:property>< /ww:iterator>   

webwork***種方式是不能自動注入的,但是第二種可以;現(xiàn)在struts2兩種方式都能實現(xiàn),方便?。?/p>

5、 Struts標簽只認標準的getter和setter方法,而對于boolean類型的屬性,eclipse自動生成的get、set方法是不標準的。比如:定義boolean值屬性時是 isXxxxx,用Eclipse生成的getter和setter就是setXxxxx(boolean isXxxxx),isXxxxx(),而Struts2.0的轉(zhuǎn)換器對boolean的轉(zhuǎn)換用的是setIsXxxxx(boolean isXxxxx), getIsXxxxx();又比如boolean屬性名為xxx,Eclipse生成的方法為isXxx ()和setXxx(boolean xxx),而struts2用戶的是getXxx(), setXxx(boolean isXxxxx)。但是Eclipse自動生成的get、set方法,ibatis能夠自動注入,而標準的get、set方法ibatis也能注入。

6、 初始化spring容器的兩個方式:

1) ContextLoaderListener。如果沒有contextConfigLocation的配置,spring自動查找WEB-INF路徑下的applicationContext.xml文件。

2) Listener是Servlet2.3之后才出現(xiàn)的規(guī)范,所以如果Web服務器不支持2.3以上的規(guī)范,則listener無法使用,那么就采用load-on-startup的Servlet,與Listener的作用大致相同。Listener總比所有的Servlet更優(yōu)先加載,因此,采用ContextLoaderListener創(chuàng)建ApplicationContext的時機更早。

ok,先寫這么多吧。因為跟webwork差不多,所以也就沒啥感覺了??傊?,80%的時候都是用它20%的功能,其余20%的時候多查查資料也能搞定,總的來說這本Struts 2權(quán)威指南還是有一定價值的。


本文名稱:Struts2權(quán)威指南(完整版)含源碼
網(wǎng)頁地址:http://www.5511xx.com/article/dhopghh.html