JSTL тег <c: if> не работает в JSF 1.1 - PullRequest
0 голосов
/ 25 февраля 2011

Я использую 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 и т. Д.

Похоже, тег <c:if> не работает.Буду признателен за любые идеи или указания по решению этой проблемы.

1 Ответ

3 голосов
/ 25 февраля 2011

Как и в обычной Java, вам нужно сравнить с ==, а не с =.

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

Вне зависимости от конкретной проблемы, если такая же функциональность достижима с чистым JSF, то вы должны предпочесть это, чем использовать JSTL. В этом конкретном случае вы можете просто использовать атрибут rendered, который поддерживается каждым компонентом HTML JSF. Избавьтесь от <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>
...