采用注解的優(yōu)點(diǎn): 使得代碼看起來(lái)簡(jiǎn)單方便,并且讓一個(gè)映射變得更加的獨(dú)立。傳統(tǒng)的方式是配置struts.xml配置訪問(wèn)與Action的映射關(guān)系,如果映射比較多的時(shí)候就會(huì)顯得比較雜亂,而且還有其它的異常處理類、攔截器等。會(huì)使得struts.xml變得更加的雜亂了。不方便我們剖析。 詳情參看:http://shoufuban.net/showWeb/0/0/209474603.aspx 那么就有一個(gè)新的方法誕生了:就是采用注解的方式,讓配置與Action在一起,那么我們分析代碼的時(shí)候也就變得更加的清晰容易了。 當(dāng)然,這兩種方法都是對(duì)的,根據(jù)每個(gè)人的習(xí)慣問(wèn)題,可以采用不同的方法配置。就目前而言,我所理解的:如果大型的項(xiàng)目,采用注解的方式比較好。中小型項(xiàng)目XML方式配置還是蠻不錯(cuò)的。 接下來(lái)我們就了解一下如何的使用注解進(jìn)行配置了: 當(dāng)然,首先的必備知識(shí)就是注解的學(xué)習(xí)了。前面已經(jīng)總結(jié),此時(shí)不再贅述。 下面了解一下XML中的配置與采用注解配置的對(duì)應(yīng)關(guān)系: Package ·在struts.xml中根元素為<package>這個(gè)是配置包,以及其繼承關(guān)系; ·那么采用注解方式配置方法為:@ParentPackage(value="struts-default"),當(dāng)然如果鍵值為value的時(shí)候可以省略的 Action ·struts.xml中的Action配置就不比詳解了,它包含有URL與Action的映射、方法的設(shè)置、攔截器的添加、結(jié)果的分配等; ·采用注解的時(shí)候,它有如下的幾個(gè)屬性: 1、 value:對(duì)應(yīng)的就是URL,類型為String 2、 results:對(duì)應(yīng)的就是action不同的執(zhí)行結(jié)果對(duì)應(yīng)的操作類,類型為Result[],那么Result的屬性及其內(nèi)容如下: a) name:結(jié)果的類型,也就是Action中的常量字段,如:SUCCESS、INPUT等,類型為String b) location:結(jié)果所處的位置,可以為Action、jsp、html等,類型為String c) params:要給結(jié)果傳遞的參數(shù),格式為:{"key","value", "key2", "value2"},類型為String[] 3、 interceptorRefs:對(duì)應(yīng)的就是攔截器,它的類型為:InterceptorRef[],那么InterceptorRef屬性如下: a) name:interceptor的名字、或者interceptor-stack的名字 b) params:為攔截器傳遞的參數(shù),其格式及類型和Result的params的一樣 4、 params:為這個(gè)Action傳遞的參數(shù),類型和格式和Result的params一樣 5、 exceptionMappings:類型為ExceptionMapping[],那么ExceptionMapping的屬性如下: a) result:結(jié)果名字,類型為String b) exception:所拋出的異常,類型為String c) params:為異常所傳遞的參數(shù),類型和Result的params一樣 那么就此,就完成了常用的對(duì)應(yīng)總結(jié)。 下面是一個(gè)很簡(jiǎn)單的應(yīng)用例子,只給出部分代碼: …… @ParentPackage(value="struts-default") @Action(value = "register", results = { @Result(location = "/registerResult.jsp", name ="success") }) public class RegisterAction extends DefaultActionSupport { private String username; private String password; private Stringrepassword; private int age; private Date birthday; private Date graduation; …… 其實(shí)它和XML沒(méi)有什么的區(qū)別。 那么當(dāng)它和XML配置文件同時(shí)存在的時(shí)候,應(yīng)該以注解的配置為準(zhǔn)。 |
|