這裏p的例子的所選擇的值:自動完成與實體轉換器:
工作面:
<p:autoComplete id="autocomplete1" value="#{mBAutoComplete.selectedEntity}" completeMethod="#{mBAutoComplete.complete}"
forceSelection="true" minQueryLength="3" maxResults="10">
<p:ajax update="autocomplete1" event="itemSelect" listener="#{mBAutoComplete.updateEntity}" />
</p:autoComplete>
轉換器:
@FacesConverter(forClass = Entity.class,value = "entityConveter")
public class EntityConverter implements Converter {
public EntityConverter() {
}
@Override
public Entity getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
// get Entity with WebService, but you can get it with other ways :
// like calling EJB methods or using a Collection of Entity provided in
// another managed bean
return services.getWebService().getEntity(Integer.valueOf(arg2));
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
return String.valueOf(((Entity) arg2).getEntityID());
}
}
ManagedBean:
@ManagedBean(name = "mBAutoComplete")
@SessionScoped
public class MBAutoComplete {
// Entity
private Entity selectedEntity;
// Entity Autocomplete
public List<String> complete(String query) {
List<String> results = new ArrayList<String>();
for (Entity en : this.eqList) {
if (en.getEntityID().startsWith(query)) {
results.add(en.getEntityID());
}
}
return results;
}
public void updateEntity(SelectEvent e) {
// Don't forget to check null Object sent by SelectEvent
this.selectedEntity = (Entity) e.getObject();
}
// GETTERS & SETTERS
public void setSelectedEntity(Entity e) {
this.selectedEntity = e;
}
public Entity getSelectedEntity() {
return this.selectedEntity();
}
}
在這個例子中,你並不需要使用FacesContext中,只要使用SelectEvent和轉換器。
希望得到這個幫助!
您希望獲得選定值的位置?你究竟在哪裏失敗? – user1983983
在submitListener方法中,我的偵聽器正常工作,交換機檢索ID(框「basicPojo1」 - > ok)。其中,我希望檢索自動完成jsf的選定(In String參數)值以執行處理Bean端,但是我沒有成功使用此String參數= FacesContext.getCurrentInstance()。getExternalContext() .getRequestParameterMap()。獲得( 「basicPojo1」); – user2457232
不完全確定你想要達到的目標。你需要怎樣處理選定的值?當您在自動完成中選擇一個值時,它將在最終提交表單時綁定到completeBean.selected1。或者你是否試圖在選擇該值時儘快填充其他內容? – zargarf