Struts2標簽的 標簽與JSTL的 標簽


 <s:set>標簽

set標簽 用於將某個值放入指定范圍內。例如application、session范圍等。

當某個值所在的對象圖深度非常深時,例如如下:person.worker.wife.parent.age,每次訪問該值不僅性能地下,而可讀性也很差。解決這個問題,可以將改該值設置成一個新值,並放入特定范圍內。

set標簽屬性:

  1. name: 必填,重新生成的新變量的名字
  2. scope: 可選,指定新變量被放置的范圍,該屬性可以接受application、session、request、page或action 5個值。如果沒有指定,默認是放置在Stack Context中。
  3. value: 可選,指定將賦給變量的值。如果沒指定,則將ValueStack棧頂的值賦給新變量。
  4. var: 可選,指定該元素的引用ID,如果指定了將會將該值放在ValueStack中!

set標簽用於生成一個新變量,並把該變量放置到指定的范圍內,這樣就允許直接使用JSP表達式語言來訪問這些變量,也可以通過struts2標簽來訪問!

eg:

<!--使用param標簽為JavaBean實例傳入參數-->
<s:bean name="lee.Person" id="p">
    <s:param name="name" value="'yeeku'"/>
    <s:param name="age" value="29"/>
</s:bean>
將Stack Context中的p值放入默認范圍內。<br>
<s:set value="#p" name="xxx"/>
<s:property value="#xxx.name"/> <br>
將Stack Context中的p值放入application范圍內<br>
<s:set value="#p" name="xxx" scope="application"/>
<s:property value="#attr.xxx.name"/> <br>
將Stack Context中的p值放入session范圍內<br>
<s:set value="#p" name="xxx" scope="session"/>
<!--使用JSP2.0表達式語言直接訪問session中的屬性-->
${sessionScope.xxx.name}<br>


取出集合中的值賦給<set標簽

<s:iterator id="dmsDocumentinfo" value="#request.dmsDocumentinfos">
              //從集合中取值賦給set聲明的變量
        <s:set name="str" value="#dmsDocumentinfo.documentDesc">   </s:set>
        //在頁面顯示set標簽的值
        <s:property value="#str" />
</s:iterator>

 

<c:set> 標簽

<c:set>標簽就是<jsp:setProperty>行為標簽的孿生兄弟。這個標簽之所以很有用呢,是因為它會計算表達式的值,然后使用計算結果來設置 JavaBean 對象或 java.util.Map 對象的值。


屬性

<c:set>標簽有如下屬性:

屬性 描述 是否必要 默認值
value 要存儲的值 主體的內容
target 要修改的屬性所屬的對象
property 要修改的屬性
var 存儲信息的變量
scope var屬性的作用域 Page

如果指定了target屬性,那么property屬性也需要被指定。


實例演示

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:set 標簽實例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<c:out value="${salary}"/>
</body>
</html>

運行結果如下:

4000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM