if-statement - 在struts 2中测试迭代器值
问题描述
我想根据条件在下拉列表中选择选项。
<s:set var="defaultState" value="customerBean.state"/>
<select onchange="reflect(this);" name="customerBean.state" class="form-control" id="state">
<option>Select</option>
<s:iterator value="stateList" var="statevalue">
<s:if test="%{#defaultState.equalsIgnoreCase(stateValue)}">
<option id="stateVal" selected="selected"><s:property value="statevalue"/></option>
</s:if>
<s:else>
<option id="stateVal"><s:property value="statevalue"/></option>
</s:else>
</s:iterator>
</select>
这不起作用。但如果我把
<s:if test="%{#defaultState.equalsIgnoreCase('Alabama')}">
这行得通。
请帮忙。
解决方案
你检查过这不是一个简单的错字吗?在您的代码中,您正在使用stateValue
and statevalue
。
旁边是stateList
一个简单的列表还是 bean 列表?对于第二个选项,您必须使用类似stateValue.value
.
另一种选择:因为它是一个 OGNL 表达式,你也可以尝试#statevalue
. 但我永远不确定何时使用#
,何时不使用。
另一种选择:使用 struts 标记s:select并使用value
属性预选选项。
推荐阅读
- css - 在浏览器中获取文档对象模型更改 (Diff) 以修改 CSS
- c# - 从大量十进制数(包括负数)中查找具有给定总和的所有可能子集
- c# - 如何在 cake 中编译 .netcore 2.2 项目
- c# - 如果在 Microsoft Graph 中的根和子根文件夹上有文件名,请获取文件名
- solr - 当旧的 Nutch crawldb 丢失时,如何从 Solr 中删除丢失的页面?
- java - 读取 mp4 并写入另一个 mp4 会创建更大的尺寸
- objective-c - 在swift中使用带有条件的宏
- powershell - 如何在我的 PowerShell 脚本中将日期转换为 system.datetime 类型?
- mysql - 将 JSON 输入插入 MySQL 表
- asp.net-core - “如何在 asp.net-core 网页中显示 html 电子邮件”