自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Struts2權(quán)威指南(完整版)含源碼

開(kāi)發(fā) 后端
這本Struts 2權(quán)威指南,老是得在一大堆東西里面找自己需要的??雌饋?lái)有些累,不過(guò)確實(shí)一本很好的資料,光看其實(shí)是看不出什么的,還是得自己動(dòng)手做做,好在里面例子的源碼都有,不過(guò)話說(shuō)回來(lái),有對(duì)比才能知道差異。本文將為大家做總結(jié)。

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

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

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

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

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

2) 接口Action,這個(gè)接口只定義execute方法和5個(gè)標(biāo)準(zhǔn)字符串常量:SUCCESS\NONE\ERROR\INPUT\LOGIN,可以簡(jiǎn)化execute方法的返回值。

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

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

1)private List< PICTURE> pictureList; //圖片對(duì)象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;   //字符串?dāng)?shù)組
          描述1< INPUT name=description>
          描述2< INPUT name=description>
          輸出:< ww:iterator value="description">< ww:property>< /ww:property>< /ww:iterator>   

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

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

6、 初始化spring容器的兩個(gè)方式:

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

Struts2權(quán)威指南"" 

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

 

Struts2權(quán)威指南" 

 

ok,先寫(xiě)這么多吧。因?yàn)楦鷚ebwork差不多,所以也就沒(méi)啥感覺(jué)了。總之,80%的時(shí)候都是用它20%的功能,其余20%的時(shí)候多查查資料也能搞定,總的來(lái)說(shuō)這本Struts 2權(quán)威指南還是有一定價(jià)值的。

【編輯推薦】

  1. 在Eclipse中開(kāi)發(fā)struts應(yīng)用程序
  2. 手把手教你在Eclipse中配置開(kāi)發(fā)Struts
  3. Eclipse下開(kāi)發(fā)struts完整解決亂碼問(wèn)題
  4. Struts相關(guān)背景介紹
  5. 使用Easy Struts for Eclipse開(kāi)發(fā)Struts
責(zé)任編輯:張燕妮 來(lái)源: sina.com
相關(guān)推薦

2022-09-06 14:57:27

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全

2020-11-11 00:40:35

云計(jì)算混合云私有云

2010-04-26 01:07:07

雙線負(fù)載均衡

2020-11-01 17:01:00

Python字典開(kāi)發(fā)

2012-04-25 10:14:40

JavaStruts

2010-09-14 14:07:56

2010-09-27 09:18:55

2009-07-29 09:54:34

struts2和str

2009-03-11 08:46:46

Chrome瀏覽器更新

2012-08-30 09:48:02

Struts2Java

2009-06-25 15:11:28

Struts2教程Struts2程序

2011-07-01 10:23:41

Ubuntu Qt Creator

2015-07-10 09:47:43

CSSMacBook Air

2010-09-17 17:24:44

2009-02-04 10:51:07

2017-07-20 10:35:51

2019-01-23 08:48:50

跨域協(xié)議端口

2011-09-19 16:17:02

Java

2017-07-19 16:17:53

2009-07-03 09:35:57

Struts2 JSP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)