0

我只需<ui:repeat>要从搜索结果中显示选定的行。这是我的代码:

<h:inputText value="#{user.lname}" required="false" class="defaultText1 c_8" title="Search   by user"></h:inputText>
<h:commandButton id="submit" name="submit"  action="#{user.retrieveMembersByName}" />

<ui:repeat id="dtable" var="u" value="#{user.getUserList()}" varStatus="status" rendered="#{not empty user.dataList}">

        <li>
        <a href="#">#{u.memberId}</a>
         <a href="#" >#{u.groupId}</a>
        <a href="#">#{u.fname}</a>
        <a href="#">#{u.mname}</a>
                </li>
</ui:repeat> 

现在它正在显示所有行。如果我放<ui:repeat value="#{user.dataList}">,它只会显示搜索到的单行。但是,我想显示所有行,并且只有当我搜索时它才应该显示单行。或者我可以突出显示搜索的行吗?

4

1 回答 1

0

检查某些条件并显示具有附加类的元素以“突出显示”结果。如果您愿意,也可以更改其他元素的类,即隐藏它们。

风景:

<h:form>
    <h:inputText value="#{userBean.userName}" required="true" />
    <h:commandButton value="Search" action="#{userBean.search}" />
    <ui:fragment rendered="#{not empty userBean.userList}">
        <ul>
            <ui:repeat value="#{userBean.userList}" var="user">
                <li class="#{fn:contains(user.name, userBean.userName) ? 'highlight' : 'grayed'}"><a href="#">#{user.name}</a></li>
            </ui:repeat>
        </ul>
    </ui:fragment>
</h:form>

这也可以通过带参数的 EL 2.2 方法调用来完成,而不是使用JSTL 函数

豆子:

@ManagedBean
@ViewScoped
public class UserBean implements Serializable {

    private List<User> userList;//getter
    private String userName;//getter+setter
    public String search() {
        //load data and handle exceptions, if needed, do business job
        userList = userDAO.find(userName);
    }

}
于 2013-05-31T12:51:14.563 回答