JSTL <c:if> 标签在 JSF 1.1 中不起作用
Posted
技术标签:
【中文标题】JSTL <c:if> 标签在 JSF 1.1 中不起作用【英文标题】:JSTL <c:if> tag not working in 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 等等。
<c:if>
标签似乎不起作用。任何解决此问题的想法或指示将不胜感激。
【问题讨论】:
【参考方案1】:与普通 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>
【讨论】:
感谢您的输入,“=”中有一个错字,而发布它实际上是“==”,仅在代码中我现在会检查呈现的标签并会更新你..我很确定这会工作 那么具体问题是由其他原因引起的。我的美分你在数据表中有这个。那么 JSTL 将根本不起作用。阅读我昨天发布的this answer 了解更多详情。 没有话要谢谢你我还有很长的路要走它就像魅力一样工作 不客气。只需一票和一个复选标记就足以表达您的感谢:) 另一个链接也很有帮助以上是关于JSTL <c:if> 标签在 JSF 1.1 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章