JSF Facelet проверяет, если условие выполняется - PullRequest
2 голосов
/ 07 января 2012

Я пытаюсь реализовать составной компонент, который будет отображать комментарии в виде списка массивов.

<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 Ответ

3 голосов
/ 08 января 2012

Большинство компонентов JSF имеют атрибут rendered, в который можно поместить выражение EL, которое возвращает либо true, либо false. На основе возвращаемого значения будет отображаться компонент или нет. В вашем случае вы можете попробовать это:

<h:link rendered="${comment.authId == authUser.id}" 
        outcome = "editComment" value = "edit">
   <f:param name="id" value="#{comment.id}" />
<h:link>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...