我尝试使用c:if
标签但是在真实情况下它没有显示任何内容。当if
条件为真时,我该怎么做才能显示任何文本。
这是我的xhtml代码
<html>
<body>
<c:if test="#{fileMB.per.getFirstName()}='gul'}" >
<h:outputLabel for="user" value="#{logMB.userExists.getFirstName()}"/>
</c:if>
</body>
</html>
per是登录人员的范围变量...
答案 0 :(得分:0)
您需要在JSTL标签内保留您的条件。
<c:if test="${salary > 2000}">
<p>My salary is: <c:out value="${salary}"/><p>
</c:if>
在http://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm
中查看详情你的条件中没有开放标记的close}标签,#而不是$,你应该用双等于==
比较字符串 中查看详情答案 1 :(得分:0)
您的代码出了问题:
您正在使用赋值运算符而不是比较运算符。更不用说你真的不应该使用带有字符串的比较运算符。所以你的比较应该改为
#{fileMB.per.getFirstName().equals('gul')}}
你不应该使用带有facelets的JSTL标签,除非你完全确定你正在做什么。阅读this post并将您的代码更改为
<h:outputLabel for="user" rendered="#{fileMB.per.getFirstName().equals('gul')}}" value="#{logMB.userExists.getFirstName()}"/>
当然,这种方法的整体有效性仍然取决于选择正确的bean范围(阅读:@ViewScoped
)
<强>读取强>