`
shiqidide
  • 浏览: 65177 次
文章分类
社区版块
存档分类
最新评论

Struts2 在页面定义变量 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>


分享到:
评论

相关推荐

    struts2标签之列求和

    通过以上分析可知,利用Struts2的`&lt;s:iterator&gt;`和`&lt;s:set&gt;`标签,我们可以很方便地实现对列表数据的迭代显示及数值求和功能。这种方法不仅简化了后端代码逻辑,也使得前端页面更加灵活和动态。这对于处理大量数据时...

    struts2标签大全

    18. **s:set标签**:设置变量,可以在Value Stack上下文中创建新的变量或修改已有变量的值。 19. **s:label标签**:创建标签文本,可以用于提示信息或作为HTML元素的标签。 通过熟练掌握这些标签,开发者可以更...

    struts2<s:if>使用心得

    `&lt;s:set&gt;`标签用于在当前作用域中定义一个变量,其语法如下: ```xml &lt;s:set name="varName" value="value" /&gt; ``` - `name`属性:指定要设置的变量名。 - `value`属性:指定变量的值,可以是简单的常量或者复杂的...

    Struts2页面开发中常用标签

    在Struts2页面开发中,熟练掌握和运用各种标签是构建高效、动态Web应用的关键。以下是对Struts2页面开发中常用标签的深入解析,旨在为开发者提供一份实用的开发查询手册。 ### 1. 往Action里传值 #### 1.1 `...

    Struts标签集合简介

    此标签类似于Struts1中的JavaBean引用,但在Struts2中并不常用,因为Struts2更倾向于使用Action来处理业务逻辑。 C. `&lt;s:checkbox&gt;`, `&lt;s:checkboxlist&gt;`, `&lt;s:combobox&gt;`, `&lt;s:component&gt;`: 这些标签用于创建复选...

    struts2标签写法

    - `s:set`:设置变量,如 `&lt;s:set var="myAge" value="%{age+1}" /&gt;`,然后可以在后续标签中使用这个变量。 - `s:iterate`:循环遍历集合,如 `&lt;s:iterate value="users" id="user"&gt;${user.name}&lt;/s:iterate&gt;`,会...

    Struts2全部标签使用说明

    Struts2是一个流行的MVC框架,它的标签库极大地方便了开发者在JSP页面上的工作。下面将详细介绍Struts2中的部分核心标签及其用法。 A. `&lt;s:a&gt;` 和 `&lt;s:action&gt;`: - `&lt;s:a href=""&gt;` 标签用于创建超链接,它可以绑定...

    struts 2.0 常用标签

    Struts 2.0 提供了一套强大的标签库,使得开发者可以更加方便地在JSP页面中实现业务逻辑和视图的分离,提高代码的可读性和可维护性。 1. **s:form标签**: s:form 是 Struts 2 标签库中最常用的标签之一,用于创建...

    Struts2 常用标签使用(三十九)

    Struts2提供了`s:set`标签,可以在JSP页面中设置变量,如`&lt;s:set name="myVar" value="Hello, World!" /&gt;`,并在其他地方引用。 九、标签的标签库 Struts2还提供了许多其他标签库,如JSTL、Tiles等,可以结合使用...

    struts2 标签 大全 总结 实用

    10. **s:set标签**:用于在JSP页面中设置变量。例如,`&lt;s:set var="total" value="%{#session.cart.totalPrice}" /&gt;`将购物车总价存入名为"total"的变量中。 11. **s:debug标签**:用于在页面上输出调试信息,显示...

    struts常用标签示例

    用于在页面范围内设置变量,类似于JSP的`&lt;c:set&gt;`标签。 10. **`&lt;s:if&gt;`** 和 `&lt;s:else&gt;`、`&lt;s:elseif&gt;` 标签: 提供条件判断功能,允许根据特定条件展示内容。 11. **`&lt;s:iterator&gt;`** 标签: 用于迭代集合...

    struts2基本标签用法

    在Struts2中,可以使用`&lt;s:set&gt;`标签来设定变量。例如: ```xml &lt;s:set name="number" value="5"/&gt; ``` 这里的`name`属性指定了变量名,`value`属性则设定了变量的值。通过这种方式,可以在JSP页面中定义和使用...

    struts2标签.zip

    - `s:set`:设置变量,可以用在JSP页面中进行临时数据存储。 - `s:property`:在OGNL标签库中,它可以使用OGNL表达式来获取复杂对象的属性。 3. **Tiles标签库**: - `s:include`:包含其他页面或Tiles定义,...

    Struts2标签详解及具体实例解析

    ### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...

    struts2标签解释

    `&lt;s:set&gt;`用于在特定范围内设置变量值,如Action上下文。 Q. `&lt;s:sort&gt;`,`&lt;s:submit&gt;`,`&lt;s:subset&gt;`: `&lt;s:sort&gt;`根据指定比较器对列表进行排序。 `&lt;s:submit&gt;`创建提交按钮,用于提交表单数据。 `&lt;s:subset&gt;`为...

    struts2标签说明.pdf

    在JSP中使用Struts2的标签,首先需要在页面顶部引入标签库,通过以下代码: ```jsp &lt;%@taglib prefix="s" uri="/struts-tags" %&gt; ``` Struts2的`&lt;s:if&gt;`、`&lt;s:elseif&gt;`和`&lt;s:else&gt;`标签用于执行条件逻辑,类似于...

    struts2标签库

    Struts2框架内置了一个强大的标签库,这些标签不仅能够简化前端页面的开发工作,还能够提供丰富的功能支持,比如数据绑定、表单处理等。 #### 二、OGNL(对象图导航语言) OGNL是Object Graphic Navigation ...

    Struts2标签库详解

    2. `&lt;s:set&gt;`:创建一个变量并赋值,常用于在JSP页面中传递数据。例如,`&lt;s:set var="myVar" value="Hello World!"/&gt;`。 3. `&lt;s:if&gt;`和`&lt;s:else&gt;`:用于条件判断,与Java中的if...else语句类似,方便在视图层进行...

Global site tag (gtag.js) - Google Analytics