`
流浪鱼
  • 浏览: 1639761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

S:set标签的用法

 
阅读更多

网上很多关于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>

分享到:
评论
1 楼 www-hello 2012-03-30  
这样就可以了<s:set name="page2" scope="session">listMaterialEnt</s:set>

相关推荐

    Struts2标签库

    结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7) &lt;s:textfield&gt;、&lt;s:password&gt;、&lt;s:checkbox&gt;...

    Struts2标签库的所有

    结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7) &lt;s:textfield&gt;、&lt;s:password&gt;、&lt;s:checkbox&gt;...

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. &lt;s:...

    Struts2通用标签用法示例

    主要介绍Strus2中的通用标签,主要有&lt;s:url&gt;, &lt;s:set&gt;, &lt;s:push&gt;, &lt;s:if&gt;, &lt;s:elseif&gt;, &lt;s:else&gt;, &lt;s:iterator&gt;, &lt;s:sort&gt;, &lt;s:date&gt;, &lt;s:a&gt;等几个标签的具体用法,希望能对大家有帮助。

    GTK常用控件之标签

    GTK常用控件之标签: http://blog.csdn.net/tennysonsky/article/details/43056129

    nidhogg:基于Daemonset Pods的Kubernetes节点污点

    删除所有必需的污点后,Nidhogg注释节点: nidhogg.uswitch.com/first-time-ready: 2006-01-02T15:04:05Z Nidhogg是使用用法Nidhogg需要一个yaml / json配置文件来告诉它要监视的守护程序以及要操作的节点。...

    grub4dos-V0.4.6a-2017-02-04更新

    使用command --set-ext设置,每个扩展名使用";"分隔 例子: command --set-ext=.g4b;.g4e 执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持...

    Hacking Vim

    a-z 本文件mark (使用方法: 标志:ma, 调至标志 `a) A-Z 跨文件的mark :marks 查看所有标志 :delmarks 删除标志 2.13 自动补全 Ctrl+p 自动补全单词 Ctrl+n 自动补全单词(向前查找)两者一般感觉不到区别 Ctrl+x ...

    struts2讲义_吴峻申

    5.4.7 set标签使用介绍 98 5.4.8 url标签使用介绍 99 5.4.9 param标签使用介绍 101 5.4.10 property标签使用介绍 101 5.5 Struts2表单标签简介 101 5.5.1 基础表单标签使用介绍 102 5.5.2 复杂表单标签使用介绍 106 ...

    xheditor-1.1.14

    如果想实现更加复杂的交互应用,或者希望xhEditor编辑器能够和自己的Javascript代码实现互相访问,那么你可以选择使用方法2,相对具有更大的自由空间。 xhEditor也提供了即时的卸载编辑器方法: $('#elm1')....

    cgi模式web服务器LiuGinx.zip

    liugnix是一个 cgi模式 web服务器。 支持语言 因使用的为CGI 模式,支持所有cgi模式运行的程序。 ... -path=".": Setting website room path.... -port=":8080": Set server port!... 标签:LiuGinx

    jpivot学习总结.doc

    在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的配置文件外,我们需要在 JSP 头的位置声明对 JPivot 标签库的引用,引用方法如下: &lt;%@ taglib uri = "http://...

    java面试宝典

    65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别 17 66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几...

    JavaScript笔记

    使用方法:方法名()--&gt;方法调用--&gt;立即执行 2.js文件:网页外专门保存js脚本的文件--推荐 强调:HTML、CSS、JS都要使用UTF-8编码保存(window系统) 使用js文件引入网页:[removed][removed] 强调:一旦定义...

    java面试题

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步。在很多情况下采用异步往往更有效率。 数据库三大范式? 答:1:确保每列都是不可分割的原子值 2...

    relative-time:javascript函数将时间戳或日期转换为本地相对时间

    500 bytes ) 使用本机浏览器API安装: 从使用/从此下载/ npm i @yaireo/relative-time -S用法: 通过JS导入CSS文件import RelativeTime from '@yaireo/relative-Time' 并使用const relativeTime = new Relative...

    arcgis工具

    arcgis工具总结 1. 要素的剪切与延伸 实用工具 TASK 任务栏 Extend/Trim feature 剪切所得内容与你画线的方向有关。 2. 自动捕捉跟踪工具 ...例如,使用包含(Contain)方法,即使湖泊的边界和包含该...

    Struts2 in action中文版

    6.3.2 set标签 118 6.3.3 push标签 119 6.3.4 bean标签 120 6.3.5 action标签 122 6.4 控制标签 124 6.4.1 iterator标签 124 6.4.2 if和else标签 125 6.5 其他标签 126 6.5.1 include标签 126 6.5.2 URL标签 127 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.3.3 引用标签库指令taglib的使用 2.4 使用JSP脚本 2.4.1 在JSP中应用代码片段 2.4.2 使用JSP表达式 2.4.3 声明标识的使用 2.5 注释的魅力 2.5.1 基本的HTML注释 2.5.2 JSP隐藏注释 2.5.3 代码片段中的注释 2.6 ...

    Scala图表库Wisp.zip

    例如下面一个图表:可以使用如下方法生成:austin-2:wisp austin$ sbt 'project wisp' console [info] Loading project definition from /Users/austin/IdeaProjects/wisp/project [info] Set current ...

Global site tag (gtag.js) - Google Analytics