<h:panelGrid columns="3" >
<p:inputText styleClass="textbox" id="search" style="margin-top:30px;width: 340px !important;" value="#{testBean.name}"/>
<p:watermark for="search" value="searchText" />
<p:commandButton value="search" process="@form" styleClass="btn-primary" style="margin-top:18px;" action="#{testBean.search}" update="aaa"/>
</h:panelGrid>
<p:pickList id="aaa" value="#{testBean.searchList}" var="contact"
itemLabel="#{contact.firstName}" itemValue="#{contact}" rendered="true" >
<!-- <p:ajax event="transfer" listener="#{contactManagedBean.onTransfer}" />-->
</p:pickList>
和行动方法是
public DualListModel<ContactBean> search(){
String searchString= getSearch();
contacts= manageConatctDelegate.search(searchString);
List<ContactBean> contactTarget= new ArrayList<ContactBean>();
contactsSource.add(contacts.get(0));
contactList = new DualListModel<ContactBean>(contactsSource,contactTarget);
return contactList;
}
我正在研究选择列表示例。我有一个输入框,我可以搜索名称。我有一个方法来搜索将检索联系对象的字符串。调用搜索方法后,我正在更新列表。我检查了列表,列表正在联系。但是页面上的选择列表仍然是空白。
答案 0 :(得分:0)
返回DualListModel<ContactBean>
想要做什么?它不能以这种方式完成。您的方法应该是void
,您应该将bean的searchList
属性设置为contactList
。事实上你应该:
private DualListModel<ContactBean> searchList;
public void setSearchList(DualListModel<ContactBean> searchList) {
this.searchList = searchList;
}
public DualListModel<ContactBean> getSearchList() {
return searchList;
}
并在search
方法中设置此属性:
searchList = new DualListModel<ContactBean>(contactsSource,contactTarget);