




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Struts標簽:1.通用標簽:(1)property(2)bean(3)param(4)debug2.控制標簽:(1)if elseif else(2)iterator一、property標簽類似于上節(jié)課的例子,1.在WebRoot下新建一個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.新建一個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設為默認值:<s:property value="admin" default="管理員"/></li> <li>property設定HTML:<s:property value="'<hr/>'" escape="true"/></li>
9、; </ol> </body></html>測試:在地址欄輸入:http:/localhost:8080/ch2_example1/index_tags.jsp點擊超鏈接tags得到下面的結果:1. property:aaa 2. property賦值為字符串:username 3. property設為默認值:管理員 4. property設定HTML:<hr/> 解釋: <li>property:<s:property value="username"/></li>這個用法上節(jié)課已經(jīng)講過
10、,不解釋了。 <li>property賦值為字符串:<s:property value="'username'"/></li>這是把username作為字符串處理。 <li>property設為默認值:<s:property value="admin" default="管理員"/></li>這是給admin賦默認值,如果admin有值,則取它的值顯示,如果沒有,則顯示默認值。 <li>property設定HTML:<s:prop
11、erty value="'<hr/>'" escape="true"/></li>如果把escape改為false,則將對<hr/>進行解析。2、 Bean標簽:Bean標簽用于創(chuàng)建一個JavaBean的實例,創(chuàng)建實例時通過<s:param/>給JavaBean傳入?yún)?shù)。如果通過<s:param/>給JavaBean傳入屬性值則需要給JavaBean設置Setter方法,如果需要訪問JavaBean的屬性則需要設置Getter方法。Bean標簽有兩個屬性:1. Name:必
12、填的屬性,指定需要實例化的Java類2. Var:可選項。如指定了該屬性,則該JavaBean實例會被放入StackContext中(不是ValueStack),從而允許直接通過該var屬性來訪問該JavaBean的實例。新建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,得到結果為:修改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>得到的結果是一樣的。如果想訪問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>測試結果為:在tags.jsp中加入,通過debug標簽查看結果 <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中加入以下語句:查看結果及值棧內(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>結果為:注意:<s:bean>開始的時候,新建對象,放到棧頂。執(zhí)行結束,對象就不在棧中了。所以一定要在<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>注意:此時mydog是放在了ActionCont
24、ext中,可以通過#取出來。三、fielderror標簽修改tags.jsp <s:fielderror fieldName="fielderror.test" theme="simple"> </s:fielderror>查看輸出結果。四、if、elseif、else標簽修改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得到一個集合if,elseif,else:age= 8, 10 如果希望得到集合中的第一個值,則寫為: <li>if,elseif,else:age= <s:property value="#parameters.age0"/> </li>在剛才的基礎上使用分支控制標簽: <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>修改地址欄傳入的年齡值,查看不同的結果。繼續(xù)修改tags.jsp:如果沒有aaa這個屬性,則可以這樣判斷: &l
27、t;li> <s:if test="#parameters.aaa=null">aaa is null</s:if> </li>五、iterator標簽 <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/> | 遍歷的元素個數(shù):<s:property value="#status.count"/> 遍歷的元素索引:<s:property value="#status.index"/> 遍歷的是否偶數(shù):<s:property value="#status.even"/> 遍歷的是否奇數(shù):<s:property value="#status.odd"/> 遍歷的是否第一個?<s:property value="#status.first"/> 遍歷的是否最后一個?<s:property value="#status.last"/> &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 球鞋合同解約協(xié)議書
- 快遞終止合同協(xié)議書
- 聘用廚師合同 協(xié)議書
- 合同和協(xié)議書范本
- 采購板房合同協(xié)議書
- 用工合同解除協(xié)議書
- 木材運輸合同協(xié)議書
- 柴油供貨合同協(xié)議書
- 拍賣藏品合同協(xié)議書
- 樓梯裝修合同協(xié)議書
- 《新能源材料與器件》教學課件-04電化學能源材料與器件
- 2022年同等學力人員申請碩士學位日語水平統(tǒng)一考試真題
- 游泳池設備操作培訓課件
- 城軌道交通人因事故分析及評價研究
- T∕CADERM 2002-2018 胸痛中心(基層版)建設與評估標準
- ZYWL-4000型履帶式鉆機
- 腦梗死標準病歷、病程記錄、出院記錄模板
- 50MPa路面抗折混凝土配合比
- 油閥座加工工藝與夾具設計說明
- 護士壓力與情緒管理PPT課件
- 劉鴻文材料力學習題集(全且附有標準答案)
評論
0/150
提交評論