JSF facelet验证条件是否为真

时间:2012-01-07 19:06:23

标签: java jsf

我正在尝试实现一个复合组件,它将在数组列表中显示注释。

<cc:interface>
    <cc:attribute name="value" type="java.util.List" required="true" shortDescription="The list of objects that should be displayed"/>
</cc:interface>

<cc:implementation>

    <ui:repeat var="comment" value="#{cc.attrs.commentList}">
        <div class = "comment-block">
            <h3>#{comment.title}</h3>
            <h4>#{comment.author}</h4>
            <p>#{comment.body}</p>
            <h:link outcome = "editComment?id={comment.id}" value = "edit" />
        </div>
    </ui:repeat>

</cc:implementation>

现在问题是只有当记录的用户是评论的作者时才应显示标记。通常我会这样做:

<c:if test = "${comment.authId == authUser.id}">
    <a href = "editComment.jsp?id=${comment.id}">
</c:if>

我如何在JSF中做这样的事情?

1 个答案:

答案 0 :(得分:3)

大多数JSF组件都具有属性rendered,您可以在其中放置一个返回true或false的EL表达式。根据返回值,将呈现组件或不呈现组件。在您的情况下,您可以尝试:

<h:link rendered="${comment.authId == authUser.id}" 
        outcome = "editComment" value = "edit">
   <f:param name="id" value="#{comment.id}" />
<h:link>