关于struts2里面s:set 和s:if的问题,
<s:set name="seasonList" value="{'Spring',Summer,'Autumn','Winter'}" />
这么是正确的,但是我们set一个map,这样就不行了:
<s:set name="monthMap" value='#{"1":"Jan","2":"Feb","3":"Mar","4":"Apr","5":"May",
"6":"Jun","7":"Jul","8":"Aug","9":"Sep","10":"Oct","11":"Nov","12":"Dec"}' />
奇怪的是,前面必须要加一个#,感觉很奇怪,我也不知道为什么,希望研究过源码的给一个解答。
<span class="s">
<s:set name="monthMap" value="#{'1':'Jan','2':'Feb','3':'Mar','4':'Apr','5':'May','6':'Jun','7':'Jul','8':'Aug','9':'Sep','10':'Oct','11':'Nov','12':'Dec'}" />
<s:set name="currentMonth" value="%{ chargeMonth }" />
<select name="chargeMonth" class="styled">
<option value=" ">-- Select Month --</option>
<s:iterator value="#monthMap" id="month">
<option value="<s:property value='key'/>"
<s:if test="%{key==#currentMonth}">
selected="selected"
</s:if>
>
<s:property value='value'/>
</option>
</s:iterator>
</select>
发现这样不行,后来经过我反复的测试,当选择10,11,12时候能正确的将selected加上,但是选择前面的数字怎么都不行,后来经我观察,前面我将字符串用的是’,估计在后台反射的时候将其类型错误的转化成char类型了,但是估计当判断length大于1的时候,将其转化成字符串了,所以能够正确。不知道我这么猜的对不对,贴出来分享一下吧,以后希望这样的问题不能在犯了。
我修改为下面的就可以了:
<s:set name="monthMap" value='#{"1":"Jan","2":"Feb","3":"Mar","4":"Apr","5":"May","6":"Jun","7":"Jul","8":"Aug","9":"Sep","10":"Oct","11":"Nov","12":"Dec"}' />
<s:set name="currentMonth" value="%{chargeMonth}" />
<select name="chargeMonth" class="styled">
<option value=" ">-- Select Expiration Month --</option>
<s:iterator value="#monthMap" id="month">
<option value="<s:property value='key'/>"
<s:if test="%{key==#currentMonth}">
selected="selected"
</s:if>
>
<s:property value='value'/>
</option>
</s:iterator>
</select>
分享到:
相关推荐
通过以上几个示例,我们可以看到 `<s:if>` 标签在 Struts2 中的应用是非常灵活和强大的。它可以用来实现各种复杂的逻辑判断,如数值比较、字符串匹配等。此外,结合其他标签如 `<s:iterator>`,可以实现更复杂的逻辑...
本文通过具体的示例代码介绍了Struts2中`<s:if>`标签的使用方法,以及如何结合`<s:set>`标签设置变量进行条件判断。通过这种方式,我们可以实现动态网页的效果,提高用户体验。Struts2提供的这些功能强大且灵活,...
### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...
通过以上分析可知,利用Struts2的`<s:iterator>`和`<s:set>`标签,我们可以很方便地实现对列表数据的迭代显示及数值求和功能。这种方法不仅简化了后端代码逻辑,也使得前端页面更加灵活和动态。这对于处理大量数据时...
2. <s:set name=""></s:set>-----赋予变量一个特定范围内的值 3. <s:sort comparator=""></s:sort>-----通过属性给list分类 4. <s:submit></s:submit>-----提交按钮 5. <s:subset></s:subset>-----为遍历集合输出...
(2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7) <s:textfield>、<s:password>、<s:checkbox>、<s:textarea> (8) <s:select>、<s:radio>、<s:...
### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...
注意,这里的 `s:tree` 实际上是自定义的标签,因为 Struts2 核心库并没有提供 `s:tree` 标签。这个例子中的 `treeTag` 标签根据传入的根类别 ID 和类别列表来递归生成树形结构。用户可以通过修改 `rootCategoryId` ...
《Struts2 中的 s:set 和 s:if 标签详解》 在 Struts2 框架中,s:set 和 s:if 是两个非常重要的标签,它们在 JSP 页面中用于数据存储和条件判断,极大地提升了代码的可读性和维护性。下面将对这两个标签进行详细的...
根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...
在本文中,我们将深入探讨Struts2框架中两个重要的标签:`s:set`和`s:if`,以及它们在实际项目中的应用。首先,我们来详细解析`s:set`标签。 `s:set`标签用于在不同的作用域内存储值,其基本格式如下: ```xml <s:...
在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `<s:a href=""></s:a>`:创建一个...
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
- `<s:set>`:设置两个列表`appList1`和`appList2`。 - `<s:append>`:创建一个新列表`newAppList`,并将`appList1`和`appList2`合并到其中。 - `<s:iterator>`:遍历`newAppList`中的元素并显示。 ### 3. `<s:...
8. **主题和皮肤标签(Theme and Skin Tags)**:Struts2提供了多种主题和皮肤,通过`<s:set>`和`<s:theme>`标签可以改变页面的外观。 在实际使用中,Struts2标签的灵活性和便利性体现在数据绑定上,它可以直接与...
- `s:if` 和 `s:else`:条件判断,如 `<s:if test="%{age > 18}">成年人</s:if><s:else>未成年人</s:else>`。 - `s:set`:设置变量,如 `<s:set var="myAge" value="%{age+1}" />`,然后可以在后续标签中使用这个...
### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。...希望本文能对您学习和使用Struts2有所帮助。
流程控制标签,如`<s:if>`、`<s:elseif>`和`<s:iterator>`,用于实现条件判断和循环。数据访问标签,如`<s:set>`和`s:get>`,用于在ValueStack中设置和获取值,实现数据的传递和操作。此外,Struts2还提供了Ajax标签...