<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Struts-Tags學習</title>
</head>
<body>
<ol>
<li>property: <s:property value="username" /></li>
<!-- value中的字符串,struts會默認將其解析爲OGNL表達式,下列中,我們給username加上單引號後
返回值就是username,而上例中返回的則是username的取值u -->
<li>property 取值爲字符串: <s:property value="'username'" /></li>
<li>property 設定默認值: <s:property value="admin" default="管理員" /></li>
<!-- escape的默認值爲true,也就是轉意的意思 -->
<li>property 設定HTML: <s:property value="'<hr/>'" escape="false" />
</li>
<hr />
<!-- set中value的類型是Object,也就是說value="username"裏面的username是OGNL表達式,value的值是u; -->
<li>set 設定adminName值(默認爲request 和 ActionContext): <s:set
var="adminName" value="username" />
</li>
<li>set 從request取值: <s:property value="#request.adminName" />
</li>
<li>set 從ActionContext取值: <s:property value="#adminName" />
</li>
<li>set 設定範圍: <s:set name="adminPassword" value="password"
scope="page" />
</li>
<li>set 從相應範圍取值: <%=pageContext.getAttribute("adminPassword")%></li>
<!-- 也可以使用EL表達式來獲取值 -->
<li>set 從相應範圍取值: ${pageScope.adminPassword}</li>
<li>set 設定var,範圍爲ActionContext: <s:set var="adminPassword"
value="password" scope="session" />
</li>
<!-- 下例中取不到值!! -->
<li>set 使用#取值: <s:property value="#adminPassword" /></li>
<li>set 從相應範圍取值: <s:property value="#session.adminPassword" /></li>
<%-- <s:debug></s:debug> --%>
<hr />
<%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li>
<li>
push:<s:push value="#myDog">
<s:property value="name"/>
</s:push>
</li>
<li>push: <s:property value="name"/></li>
--%>
<!-- jsp的bean動作標籤和Struts2bean標籤的對比!! -->
<jsp:useBean id="dog" class="com.bjsxt.struts2.tags.Dog" />
<jsp:setProperty name="dog" property="name" value="pp" />
<jsp:getProperty name="dog" property="name" />
<hr />
<li>bean 定義bean,並使用param來設定新的屬性值: <s:bean
name="com.bjsxt.struts2.tags.Dog">
<s:param name="name" value="'pp'"></s:param>
<s:property value="name" />
<%-- <s:debug></s:debug> --%>
<!-- 在此處使用debug會看到值棧的棧頂會有dog對象 -->
</s:bean> <s:debug></s:debug> <!-- 此處使用debug就看不到dog對象了,如果還想看到其對象,必須設置var將其壓入stack context中 -->
</li>
<!-- 如果想在Stack Context中看到bean的內容,必須設置var=""; -->
<li>bean 查看debug情況: <s:bean name="com.bjsxt.struts2.tags.Dog"
var="myDog">
<!-- 注意value的值類型是Object,所以要加上單引號將其轉化爲字符串形式 -->
<s:param name="name" value="'oudy'"></s:param>
</s:bean> 拿出值: <s:property value="#myDog.name" /></li>
<hr />
<%-- <li>include _include1.html 包含靜態英文文件
<s:include value="/_include1.html"></s:include>
</li>
<li>include _include2.html 包含靜態中文文件
<s:include value="/_include2.html"></s:include>
</li> --%>
<li>include _include1.html 包含靜態英文文件,說明%用法 <s:set var="incPage"
value="%{'/_include1.html'}" /> <!-- s:include中的value值爲字符串類型,所以要取值的話,需要使用百分號將其強制轉爲OGNL表達式!! -->
<!-- 而s:property中的value值爲Object類型的,其默認爲OGNL表達式!! --> <s:include
value="%{#incPage}"></s:include> <!-- 使用百分號表示強制將其解析爲OGNL表達式!! --></li>
<hr />
<li>if elseif else: age = <s:property value="#parameters.age[0]" />
<br /> <s:set var="age" value="#parameters.age[0]" />
<s:if test="#age < 0"> wrong age!</s:if>
<s:elseif test="#age < 20">too young!</s:elseif>
<s:else>yeah!</s:else><br />
<s:if test="#parameters.aaa == null">null</s:if>
</li>
<!-- 在JSTL標籤庫中用choose when 來代替if else if -->
<%-- <!-- choose標籤!! if elseif -->
<c:set var="score" value="${param.score }" />
<c:choose>
<c:when test="${score>100||score<0}">錯誤的分數:${score}</c:when>
<c:when test="${score>=90 }">A</c:when>
<c:when test="${score>=80 }">B</c:when>
<c:when test="${score>=70 }">C</c:when>
<c:when test="${score>=60 }">D</c:when>
<c:otherwise>E</c:otherwise>
</c:choose>
--%>
<hr />
<li>遍歷集合:<br /> <s:iterator value="{1, 2, 3}">
<s:property /> | <!-- 會自動將其列出!! -->
</s:iterator></li>
<li>自定義變量:<br /> <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:property value="#x.toUpperCase()" /> |
</s:iterator></li>
<!-- 使用JSTL和EL的foreach完成迭代!! -->
<%-- foreach遍歷數組!!
<% String[] string = {"xuxiang","edward"};
request.setAttribute("name", string);
%>
<c:forEach items="${name}" var="temp" varStatus="vs"> <!-- 循環狀態變量varStatus -->
${vs.first}
${temp}
</c:forEach> --%>
<li>使用status:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<s:property /> |
遍歷過的元素總數:<s:property value="#status.count" /> |
遍歷過的元素索引:<s:property value="#status.index" /> |
當前是偶數?:<s:property value="#status.even" /> |
當前是奇數?:<s:property value="#status.odd" /> |
是第一個元素嗎?:<s:property value="#status.first" /> |
是最後一個元素嗎?:<s:property value="#status.last" />
<br />
</s:iterator></li>
<!-- 定義map時必須加上一個# -->
<li><s:iterator value="#{1:'a', 2:'b', 3:'c'}">
<s:property value="key" /> | <s:property value="value" />
<br />
</s:iterator></li>
<li><s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key" /> | <s:property value="#x.value" />
<br />
</s:iterator></li>
<li><s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
</li>
</ol>
</body>
</html>
Struts2 標籤的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.