我需要比较两个字符串,但即使它们具有相同的值或不同,总是进入语句......
<c:when test="#{bean.name1 != bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
答案 0 :(得分:7)
问题是您可能没有在选择标记中包装when。
如果你有:
<c:choose>
<c:when test="${bean.name1 != bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
</c:choose>
它会起作用
答案 1 :(得分:4)
应该吗?
<c:if test="#{bean.name1 != bean.name2}">
// code
</c:if>
编辑:<c:when>
应该在<c:choose>
内。不能问为什么,那只是语法。这就像在C / C ++ / Java中询问为什么if
不能代替switch
。它们只是不同的动物。
答案 2 :(得分:0)
如果你这样做会有什么不同:
<c:when test="${bean.name1 != bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
答案 3 :(得分:0)
我在使用c时注意到了一些瑕疵:if或c:选择和c:当在一些jsf迭代组件中时,例如rich:datatable。什么是完整的背景?
作为一种解决方法,我通常需要将内容包装在a4j:outputPanel中并相应地设置呈现的属性。
答案 4 :(得分:-1)
试试这个......
<c:if test="${bean.name1 ne bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:if>
ne =不等于
另外
#应该是$
答案 5 :(得分:-1)
应该是 当name1与name2不同时,应该只显示 的字段