`

struts2的s:set和s:if的问题

    博客分类:
  • java
阅读更多
关于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>




分享到:
评论
2 楼 my13901 2010-11-01  
我也遇过类似问题,也是折腾了一阵。呵呵~
1 楼 asialee 2009-11-18  
请圈子里的同仁多多指教。

相关推荐

    struts2 标签使用

    通过以上几个示例,我们可以看到 `&lt;s:if&gt;` 标签在 Struts2 中的应用是非常灵活和强大的。它可以用来实现各种复杂的逻辑判断,如数值比较、字符串匹配等。此外,结合其他标签如 `&lt;s:iterator&gt;`,可以实现更复杂的逻辑...

    struts2<s:if>使用心得

    本文通过具体的示例代码介绍了Struts2中`&lt;s:if&gt;`标签的使用方法,以及如何结合`&lt;s:set&gt;`标签设置变量进行条件判断。通过这种方式,我们可以实现动态网页的效果,提高用户体验。Struts2提供的这些功能强大且灵活,...

    struts2的s标签

    ### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...

    struts2标签之列求和

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

    struts2 标签库 帮助文档

    2. &lt;s:set name=""&gt;&lt;/s:set&gt;-----赋予变量一个特定范围内的值 3. &lt;s:sort comparator=""&gt;&lt;/s:sort&gt;-----通过属性给list分类 4. &lt;s:submit&gt;&lt;/s:submit&gt;-----提交按钮 5. &lt;s:subset&gt;&lt;/s:subset&gt;-----为遍历集合输出...

    Struts2标签库

    (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;、&lt;s:textarea&gt; (8) &lt;s:select&gt;、&lt;s:radio&gt;、&lt;s:...

    struts2-s标签

    ### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...

    Struts2中关于s:tree

    注意,这里的 `s:tree` 实际上是自定义的标签,因为 Struts2 核心库并没有提供 `s:tree` 标签。这个例子中的 `treeTag` 标签根据传入的根类别 ID 和类别列表来递归生成树形结构。用户可以通过修改 `rootCategoryId` ...

    set与if总结.docx

    《Struts2 中的 s:set 和 s:if 标签详解》 在 Struts2 框架中,s:set 和 s:if 是两个非常重要的标签,它们在 JSP 页面中用于数据存储和条件判断,极大地提升了代码的可读性和维护性。下面将对这两个标签进行详细的...

    struts2遍历集合

    根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...

    set与if总结.pdf

    在本文中,我们将深入探讨Struts2框架中两个重要的标签:`s:set`和`s:if`,以及它们在实际项目中的应用。首先,我们来详细解析`s:set`标签。 `s:set`标签用于在不同的作用域内存储值,其基本格式如下: ```xml &lt;s:...

    struts2标签大全

    在JSP中,我们通常使用`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `&lt;s:a href=""&gt;&lt;/s:a&gt;`:创建一个...

    Struts2全部标签使用说明

    以上只是Struts2标签库的一部分,实际使用中还有更多标签如`&lt;s:textfield&gt;`(文本输入框)、`&lt;s:textarea&gt;`(文本区域)、`&lt;s:submit&gt;`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...

    struts2标签

    - `&lt;s:set&gt;`:设置两个列表`appList1`和`appList2`。 - `&lt;s:append&gt;`:创建一个新列表`newAppList`,并将`appList1`和`appList2`合并到其中。 - `&lt;s:iterator&gt;`:遍历`newAppList`中的元素并显示。 ### 3. `&lt;s:...

    Struts2标签集锦(附Struts2标签详解word文档)

    8. **主题和皮肤标签(Theme and Skin Tags)**:Struts2提供了多种主题和皮肤,通过`&lt;s:set&gt;`和`&lt;s:theme&gt;`标签可以改变页面的外观。 在实际使用中,Struts2标签的灵活性和便利性体现在数据绑定上,它可以直接与...

    struts2标签写法

    - `s:if` 和 `s:else`:条件判断,如 `&lt;s:if test="%{age &gt; 18}"&gt;成年人&lt;/s:if&gt;&lt;s:else&gt;未成年人&lt;/s:else&gt;`。 - `s:set`:设置变量,如 `&lt;s:set var="myAge" value="%{age+1}" /&gt;`,然后可以在后续标签中使用这个...

    Struts2常用标签及说明

    ### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。...希望本文能对您学习和使用Struts2有所帮助。

    struts2标签库

    流程控制标签,如`&lt;s:if&gt;`、`&lt;s:elseif&gt;`和`&lt;s:iterator&gt;`,用于实现条件判断和循环。数据访问标签,如`&lt;s:set&gt;`和`s:get&gt;`,用于在ValueStack中设置和获取值,实现数据的传递和操作。此外,Struts2还提供了Ajax标签...

Global site tag (gtag.js) - Google Analytics