Jsf 2 如何在ui中仅显示渲染行并隐藏其他行:重复
我只需要在搜索结果的Jsf 2 如何在ui中仅显示渲染行并隐藏其他行:重复,jsf-2,facelets,Jsf 2,Facelets,我只需要在搜索结果的中显示选定的行。这是我的密码: <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}" /> &l
中显示选定的行。这是我的密码:
<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>
现在它正在显示所有行。如果我输入
,它将只显示搜索到的单行。但是,我希望显示所有行,并且仅当我搜索时,它应该显示单行。或者我可以突出显示搜索的行吗?检查某些条件,并显示一个带有附加类的元素以“突出显示”结果。如果需要,还可以更改其他元素的类,即隐藏它们
观点:
<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方法调用来完成,而不是使用
豆子:
@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);
}
}
@ManagedBean
@视域
公共类UserBean实现了可序列化{
私有列表userList;//getter
私有字符串用户名;//getter+setter
公共字符串搜索(){
//加载数据并处理异常,如果需要,执行业务任务
userList=userDAO.find(用户名);
}
}
Hi@skuntsel感谢您的回复…..行的高亮显示有效…但我想在显示serched元素时隐藏其他行。但现在它显示所有行。我已尝试在Bean中使用if()条件进行检查,但没有成功…您能告诉我如何操作吗。