【问题标题】:JSTL <c:if> tag not working in JSF 1.1JSTL <c:if> 标签在 JSF 1.1 中不起作用
【发布时间】:2011-07-04 00:54:26
【问题描述】:

我正在使用 JSF 1.1 以及 Tomahawk 和 Tomcat 6.0

<c:if test="${vo.type=1}">
    <t:commandLink action="#{Manager.openPatient}">
        <c:out value="${vo.patientId}"></c:out>
        <t:outputText value="#{vo.patientId}" />
        <f:param value="#{vo.id}" name="patientId"/>
    </t:commandLink>
</c:if>

我正在尝试根据类型添加条件。 如果vo.type = 1 请致电患者。 如果vo.type = 2 调用Account 等等。

&lt;c:if&gt; 标签似乎不起作用。任何解决此问题的想法或指示将不胜感激。

【问题讨论】:

    标签: jsp jsf jstl tomahawk


    【解决方案1】:

    与普通 Java 一样,您需要与 == 进行比较,而不是与 = 进行比较。

    <c:if test="${vo.type == 1}">
    

    与具体问题无关,如果使用纯 JSF 可以实现相同的功能,那么您应该更喜欢使用 JSTL。在这种特殊情况下,您可以只使用每个 JSF HTML 组件都支持的 rendered 属性。去掉&lt;c:if&gt;(和多余的&lt;c:out&gt;),改成&lt;t:commandLink&gt;如下:

    <t:commandLink action="#{Manager.openPatient}" rendered="#{vo.type == 1}">
        <t:outputText value="#{vo.patientId}" />
        <f:param value="#{vo.id}" name="patientId"/>
    </t:commandLink>
    

    【讨论】:

    • 感谢您的输入,“=”中有一个错字,而发布它实际上是“==”,仅在代码中我现在会检查呈现的标签并会更新你..我很确定这会工作
    • 那么具体问题是由其他原因引起的。我的美分你在数据表中有这个。那么 JSTL 将根本不起作用。阅读我昨天发布的this answer 了解更多详情。
    • 没有话要谢谢你我还有很长的路要走它就像魅力一样工作
    • 不客气。只需一票和一个复选标记就足以表达您的感谢:)
    • 另一个链接也很有帮助
    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 2012-07-19
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多