我在比较迭代器中的字符串时遇到问题 JSP:
<s:iterator value="piecesTxt">
<s:if test="top.equals('_')">
<s:textfield name="solIntrod" theme="simple" size="2" maxlength="1"/>
</s:if>
<s:else>
<s:property/>
</s:else>
</s:iterator>
piecesTxt是一个包含以下内容的列表: - 文字。 - 间隙,在List中存储字符串“_”
JSP将“_”显示为文本:
El ot _ o d _ a f _ imos a na _ egar en un _ ate.
我也尝试过:
<s:if test="top == '_'">
Including in s:iterator var="pt"
<s:if test="pt == '_'">
<s:if test="pt.top == '_'">
<s:if test="pt.charAt(0) == '_'">
其他迭代器文本有效,但事实并非如此。有任何想法吗? 提前谢谢。
答案 0 :(得分:2)
OGNL将单引号中的单个字符解释为char
,而不是String
。
使用双引号:
<s:if test='top.equals("_")'>
有关详细信息,请参阅Why won't the 'if' tag evaluate a one char string。