日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Struts2 在页面定义变量 s:set标签

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2 在页面定义变量 s:set标签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/shiqidide/article/details/7398078

網上很多關于S:set標簽的用法,例如:

<s:set name="test" value="'測試'" />
<s:property value="#test" />

?

最近在項目開發中,需要一個把一個List中的id,循環輸出到一個js里面。測試了半天,得到如下代碼。

(假設test這個list中有個ID字段,值為1 2 3 4)

<script>
var aa="";
<s:set name="ttt" value="-1" />
<s:iterator id="epslist" value="test" status="index">
?<s:set name="ttt" value="#ttt+','+#epslist.id" />
</s:iterator>
aa="<s:property value="#ttt" />";
</script>

?

循環之后aa值="-1,1,2,3,4"。(這里根據自己的需要把紅色部分的value改為自己需要的,然后在用js操作該aa的值)

?

注意紅色部分,如果刪除掉紅色部分代碼,aa值為""(不是null).

如果把紅色部分代碼改為<s:set name="ttt" value="" /> 或者<s:set name="ttt" />

?

結果是:

第一種情況 aa="null,1,2,3,4";

第二種情況 aa=**.**.**.**@***,1,2,3,4;

遇到過set設置了字符串不能顯示的情況例如

<s:set name="ttt" value="abc" />

<s:property value="#ttt"/>按道理說可以顯示了啊。其實暗藏玄機,就是這時候他把abc當成變量來取值,而不是看成字符串。所以要想看成字符串必須加單引號。<s:set name="ttt" value="’abc‘" />

?

?

set標簽是將某個值放到指定范圍內, 比如說 student.teacher.parent.age 每次訪問這個屬性不僅性能低,而且代碼可讀性很差,為了解決這個問題,可以將這個值設置為一個新值,并且放入指定范圍內
name 是必填屬性,是重新生成的新變量的名字
scope 可選屬性,指定新變量被放置的范圍,可以接受application,session,request,page,action 這5個值 沒有指定默認是Stack Context中
value 可選屬性,指定變量的值 如果沒有指定,使用ValueStack棧頂的值賦給新變量
id 可選屬性,指定新元素的引用ID

下面是個例子:

<!-- 使用bean標簽定義一個javaBean實例--!>
<s:bean name="lee.Person" id="p">
<s:param name="name" value="zhangsan"/>
<s:param name="age" value="29"/>
</s:bean>
將p放入默認范圍內
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
將p放入application范圍內。
<s:set value="#p" name="test" scope="application"/>
<s:property value="#attr.test.name"/> <br>
<s:property value="#attr.test.age"/> <br>
將p放入session范圍內。
<s:set value="#p" name="test" scope="session"/>
${sessionScope.test.name} <br>

?

賦的值如果是一個表達式,基本都會,我看了樓上的各種回答,清一色的都是賦的表達式,都沒有賦常量的例子,
我現在也補充一個,如果value中要賦的是常量,如果直接
<s:set name="page2" value="listMaterialEnt"? scope="session"> </s:set>
這樣在頁面中是訪問不到listMaterialEnt這個字符串,怎么樣才能賦這個字符串常量值呢?加個單引號就搞定,這個也是我研究了半天才研究出來,如下:
<s:set name="page2" value="'listMaterialEnt'"? scope="session"> </s:set>



總結

以上是生活随笔為你收集整理的Struts2 在页面定义变量 s:set标签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。