網(wǎng)站打開是404什么是電商?電商怎么做
基本概述:在JavaWeb中,Struts2標簽庫是一個比較完善,而且功能強大的標簽庫,它將所有標簽都統(tǒng)一到一個標簽庫中,從而簡化了標簽的使用,它還提供主題和模板的支持,極大地簡化了視圖頁面代碼的編寫,同時它還提供對ajax的支持,大大的豐富了視圖的表現(xiàn)效果。與JSTL(JSP Standard Library,JSP 標準標簽庫)相比,Struts2標簽庫更加易用和強大。
PS:使用標簽,需要引入Struts2核心jar包,在jsp頭部,加入<%@ taglib uri="/struts-tags" prefix="s" %>即可
Struts2標簽庫的分類:
數(shù)據(jù)標簽:
1、property ??
<!-- value:可選屬性,指定需要輸出的屬性值,如果沒有指定該屬性,則默認輸出ValueStack棧頂?shù)闹?-->
<s:property value="cla2.num1"/>
2、set
注:set中的var沒有放到值棧中
<s:set var="test2" value="cla2"></s:set>
<!-- 取不到值,因為標簽代表的含義是,從值棧中去找test2的num1屬性值 -->
沒加#:<s:property value="test2.num1"/>
<!-- 能取到值,因為取的是非根(不是valuestack下)對象的num1屬性值 -->
加#:<s:property value="#test2.num1"/>
頁面效果:
3、push
push表示彈棧,標簽體中即可拿到彈棧內(nèi)容,結束標簽回歸原樣
push前:<s:property/>
<s:push value="result">push后:<s:property/>
</s:push>
push完成后:<s:property/>
頁面效果:
4、action
作用:是為了向后臺發(fā)請求拿數(shù)據(jù),加載初始化數(shù)據(jù)所用
<s:action name="tagAction" namespace="/sy" var="test3"></s:action>
test3:<s:property value="test3" />
test3.result:<s:property value="#test3.result" />
頁面效果:
5、url
? ? 作用:用于存放一個路徑
? ? 屬性:
? ? ? ? action:動作名稱
? ? ? ? namespace:名稱空間
? ? ? ? var:取值是一個普通字符串。他會把action和namespace組成一個url作為value,把var的取值作為一個key,存入contextMap中
<s:url namespace="/sy" action="tagAction" var="test4"></s:url>
<s:a href="%{#test4}">GO</s:a>
6、param
屬于子標簽,通常是配合action、url去使用的
<s:url namespace="/sy" action="tagAction" var="test5"><s:param name="test6">result</s:param><s:param name="test7" value="result"></s:param>
</s:url>
test5:<s:property value="test5" />
頁面效果:
7、date
? ?它是用于格式化輸出日期
? ? name屬性:取值是一個ognl表達式,表示要格式化的日期對象
? ? format屬性:指定格式
? ? var屬性:取值是一個普通的字符串。
? ? ? ? ? ?把格式化好的日期字符串作為value,把var的取值作為key。存入contextMap中
<%request.setAttribute("time", new Date());
%>
<s:date name="#request.time" format="yyyy-MM-dd"/>
8、debug
debug標簽用于調(diào)試Struts2,使用它會在頁面中生成一個debug標簽,點擊后會顯示服務器各種對象信息,包括值棧、ContextMap等
<s:debug></s:debug>
控制標簽:
1、iterator
s:iterator是struts2的一個迭代標簽,它的value屬性取值是一個OGNL表達式
var屬性:它的取值就是一個普通的字符串.
用了var:把每次遍歷的對象作為value,把var的值作為key,存入ContextMap中
沒用var:把每次遍歷的對象壓入棧頂,再下次遍歷之前彈棧(從棧頂移走)
<%request.setAttribute("names", new String[]{"zs","ls","ww"});
%>
<ul><s:iterator value="#request.names" var="i"><li><s:property value="#i" /></li></s:iterator>
</ul>
2、if/elseif/else
<%request.setAttribute("score", new Integer(30));%><s:if test="#request.score>80">A</s:if><s:elseif test="#request.score>60">B</s:elseif><s:else>C</s:else>
表單標簽:
<s:form name="tagAction" namespace="/sy"><s:textfield label="姓名" name="uname"></s:textfield><!-- 寫法一 --><s:radio list="{'男','女'}" value="'男'" label="性別" name="sex"></s:radio><!-- 寫法二 --><s:radio list="#{1:'男',2:'女'}" value="2" label="性別" name="sex2"></s:radio><s:select list="#{1:'T211',2:'T204',3:'T237' }" label="班級" name="clazz"></s:select><!-- 單選復選框:往后臺傳的是boolean類型 --><s:checkbox label="婚否" name="married"></s:checkbox><!-- 多選復選框 --><s:checkboxlist list="#{1:'吃',2:'喝',3:'玩' }" label="愛好" name="hobby"></s:checkboxlist><s:textarea label="備注" name="remark"></s:textarea></s:form>
頁面效果:
?