JSTL <c:if>标记在JSF 1.1中不起作用</c:if>

时间:2011-02-25 02:42:40

标签: jsp jsf jstl tomahawk

我正在使用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确实拨打了帐户,等等。

似乎<c:if>标记无效。任何解决这个问题的想法或指示都会受到赞赏。

1 个答案:

答案 0 :(得分:3)

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

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

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

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