第15章struts2標(biāo)簽_第1頁
第15章struts2標(biāo)簽_第2頁
第15章struts2標(biāo)簽_第3頁
第15章struts2標(biāo)簽_第4頁
第15章struts2標(biāo)簽_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Struts標(biāo)簽:1.通用標(biāo)簽:(1)property(2)bean(3)param(4)debug2.控制標(biāo)簽:(1)if elseif else(2)iterator一、property標(biāo)簽類似于上節(jié)課的例子,1.在WebRoot下新建一個(gè)index_tags.jsp:<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath

2、= request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <title>My JSP 'index.jsp' starting page</title> </hea

3、d> <body> 訪問屬性:<a href="http:/localhost:8080/ch2_example1/test/tags.action?username=aaa&password=bbb">tags</a> </body></html>2.新建一個(gè)my.tags.TagsAction:package my.tags;import com.opensymphony.xwork2.ActionSupport;public class TagsAction extends ActionSupp

4、ortprivate String username;private String password;public String execute()this.addFieldError("fielderror.test", "wrong!");return SUCCESS;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() retur

5、n password;public void setPassword(String password) this.password = password;3.修改struts.xml:<package name="mypack" namespace="/test" extends="struts-default"><action name="tags" class="my.tags.TagsAction" method="execute"> <r

6、esult name="success">/WEB-INF/page/tags.jsp </result> </action></package>4.在WEB-INF/page下新建tags.jsp:<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% taglib prefix="s" uri="/struts-tags" %&g

7、t;<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <title>My JSP 'tags.jsp' starting page</title> </head> <body> <ol> <li>property:<s:property value="username"/></li> <li>prop

8、erty賦值為字符串:<s:property value="'username'"/></li> <li>property設(shè)為默認(rèn)值:<s:property value="admin" default="管理員"/></li> <li>property設(shè)定HTML:<s:property value="'<hr/>'" escape="true"/></li>

9、; </ol> </body></html>測(cè)試:在地址欄輸入:http:/localhost:8080/ch2_example1/index_tags.jsp點(diǎn)擊超鏈接tags得到下面的結(jié)果:1. property:aaa 2. property賦值為字符串:username 3. property設(shè)為默認(rèn)值:管理員 4. property設(shè)定HTML:<hr/> 解釋: <li>property:<s:property value="username"/></li>這個(gè)用法上節(jié)課已經(jīng)講過

10、,不解釋了。 <li>property賦值為字符串:<s:property value="'username'"/></li>這是把username作為字符串處理。 <li>property設(shè)為默認(rèn)值:<s:property value="admin" default="管理員"/></li>這是給admin賦默認(rèn)值,如果admin有值,則取它的值顯示,如果沒有,則顯示默認(rèn)值。 <li>property設(shè)定HTML:<s:prop

11、erty value="'<hr/>'" escape="true"/></li>如果把escape改為false,則將對(duì)<hr/>進(jìn)行解析。2、 Bean標(biāo)簽:Bean標(biāo)簽用于創(chuàng)建一個(gè)JavaBean的實(shí)例,創(chuàng)建實(shí)例時(shí)通過<s:param/>給JavaBean傳入?yún)?shù)。如果通過<s:param/>給JavaBean傳入屬性值則需要給JavaBean設(shè)置Setter方法,如果需要訪問JavaBean的屬性則需要設(shè)置Getter方法。Bean標(biāo)簽有兩個(gè)屬性:1. Name:必

12、填的屬性,指定需要實(shí)例化的Java類2. Var:可選項(xiàng)。如指定了該屬性,則該JavaBean實(shí)例會(huì)被放入StackContext中(不是ValueStack),從而允許直接通過該var屬性來訪問該JavaBean的實(shí)例。新建Person類package my.ognl;public class Person private String name;private String major;public String getName() return name;public void setName(String name) = name;public String get

13、Major() return major;public void setMajor(String major) this.major = major;public String method1()return "來自JavaBean的方法"public String method1(String name)return name+"來自JavaBean的方法"新建index1.jsp:<% page language="java" import="java.util.*" pageEncoding="

14、;UTF-8"%><%taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3

15、C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control&quo

16、t; content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="

17、stylesheet" type="text/css" href="styles.css">-> </head> <body> <s:bean name="my.ognl.Person"> <s:param name="name" value="'zhangsan'"></s:param> my name is:<s:property value="name"/> &

18、lt;/s:bean> </body></html>訪問該jsp,得到結(jié)果為:修改index1.jsp:<body> <s:bean name="my.ognl.Person" var="person"> <s:param name="name" value="'zhangsan'"></s:param> </s:bean> my name is:<s:property value="#pers

19、"/> </body>得到的結(jié)果是一樣的。如果想訪問JavaBean中的方法,修改index1.jsp: <body> <s:bean name="my.ognl.Person" var="person"> <s:param name="name" value="'zhangsan'"></s:param> </s:bean> my name is:<s:property value=&quo

20、t;#"/> <s:property value="#person.method1()"/> <s:property value="#person.method1('ooo')"/> </body>測(cè)試結(jié)果為:在tags.jsp中加入,通過debug標(biāo)簽查看結(jié)果 <li>定義bean:<s:bean name="my.ognl.Dog"> </s:bean></li> <li>定義bea

21、n:<s:bean name="my.ognl.Dog" var="mydog"> <s:param name="name" value="'dagou'"></s:param> </s:bean></li> <s:debug></s:debug>在tags.jsp中加入以下語句:查看結(jié)果及值棧內(nèi)容: <li>定義bean:<s:bean name="my.ognl.Dog"&g

22、t; <s:param name="name" value="'xiaogou'"></s:param> <s:property value="name"/> <s:debug></s:debug> </s:bean></li>結(jié)果為:注意:<s:bean>開始的時(shí)候,新建對(duì)象,放到棧頂。執(zhí)行結(jié)束,對(duì)象就不在棧中了。所以一定要在<s:bean>中賦值和取值,否則取不到。如果想在<s:bean>執(zhí)行完之

23、后還能使用,就用var。修改var這一部分: <li>定義bean:<s:bean name="my.ognl.Dog" var="mydog"> <s:param name="name" value="'dagou'"></s:param> </s:bean> 取狗的名字:<s:property value="#"/></li>注意:此時(shí)mydog是放在了ActionCont

24、ext中,可以通過#取出來。三、fielderror標(biāo)簽修改tags.jsp <s:fielderror fieldName="fielderror.test" theme="simple"> </s:fielderror>查看輸出結(jié)果。四、if、elseif、else標(biāo)簽修改tags.jsp: <li>if,elseif,else:age= <s:property value="#parameters.age"/> </li>在地址欄輸入:http:/localhost:8

25、080/ch2_example1/test/tags.action?username=aaa&password=bbb&age=8&age=10得到一個(gè)集合if,elseif,else:age= 8, 10 如果希望得到集合中的第一個(gè)值,則寫為: <li>if,elseif,else:age= <s:property value="#parameters.age0"/> </li>在剛才的基礎(chǔ)上使用分支控制標(biāo)簽: <li>if,elseif,else:age= <s:property value=

26、"#parameters.age0"/> <s:if test="#parameters.age0<0">wrong data</s:if> <s:elseif test="#parameters.age0<18">still child</s:elseif> <s:else>mr right!</s:else> </li>修改地址欄傳入的年齡值,查看不同的結(jié)果。繼續(xù)修改tags.jsp:如果沒有aaa這個(gè)屬性,則可以這樣判斷: &l

27、t;li> <s:if test="#parameters.aaa=null">aaa is null</s:if> </li>五、iterator標(biāo)簽 <li> 遍歷集合:<s:iterator value="1,2,3"> <s:property/> | </s:iterator> </li> <li> 自定義變量:<s:iterator value="'aaa','bbb','cc

28、c'" var="x"> <s:property value="#x.toUpperCase()"/> | </s:iterator> </li>1. 遍歷集合: 1 | 2 | 3 | 2. 自定義變量: AAA | BBB | CCC | <li> 使用status:<s:iterator value="'aaa','bbb','ccc'" status="status"> <

29、;s:property/> | 遍歷的元素個(gè)數(shù):<s:property value="#status.count"/> 遍歷的元素索引:<s:property value="#status.index"/> 遍歷的是否偶數(shù):<s:property value="#status.even"/> 遍歷的是否奇數(shù):<s:property value="#status.odd"/> 遍歷的是否第一個(gè)?<s:property value="#status.first"/> 遍歷的是否最后一個(gè)?<s:property value="#status.last"/> &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論