Java 如何将两个字符串与<;c:如果>;?

Java 如何将两个字符串与<;c:如果>;?,java,jsp,jsf,jstl,Java,Jsp,Jsf,Jstl,我试图根据支持bean返回的字符串属性显示或。 我在比较字符串时遇到问题。。 以下是示例: <c:if test='#{column.header ne "Details"}'> <h:outputText value="#{recordTable[column.property]}"/><br/> </c:if> <c:if test='#{column.header eq "Details"}'> <h:c

我试图根据支持bean返回的字符串属性显示
。 我在比较字符串时遇到问题。。 以下是示例:

<c:if test='#{column.header ne "Details"}'>
     <h:outputText value="#{recordTable[column.property]}"/><br/>
</c:if>
<c:if test='#{column.header eq "Details"}'>
     <h:commandLink value="#{column.header}"
                    action="#{searchBean.goToWarehouse}"/><br/>
</c:if>



然而,这些比较并不奏效。这是正确的方法吗?? 是否可以在没有
的情况下执行此操作,如在:


感谢您的帮助

您似乎正在
中使用此功能。JSTL标记仅在视图构建时评估,而不是在视图渲染时评估。它归结为:JSTL首先从上到下运行,然后将生成的结果交给JSF,以便再次从上到下运行。在JSF数据表中评估JSTL标记的那一刻,数据表的迭代项(在
var
属性中的项)对JSTL不可用。因此,测试结果总是
false

只需使用JSF组件的
rendered
属性即可

<h:outputText value="#{recordTable[column.property]}" rendered="#{column.header ne 'Details'}"/>
<h:commandLink value="#{column.header}" rendered="#{column.header eq 'Details'}" action="#{searchBean.goToWarehouse}"/>
<br/>


与具体问题无关,Roseindia是最好的JSF学习资源。我建议你去找其他资源

我刚刚咨询了我团队的Java Arquitect,他给了我与您完全相同的答案。非常感谢您的回答!:)无论“roseindia自2000年起提供服务”P
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue gt 10}" />
<h:someComponent rendered="#{bean.objectValue == null}" />
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty bean.collectionValue}" />
<h:someComponent rendered="#{!bean.booleanValue and bean.intValue != 0}" />
<h:someComponent rendered="#{bean.enumValue == 'ONE' or bean.enumValue == 'TWO'}" />