下拉列表與轉換器相關聯。 ajax在下拉值更改時有效。 但是,如果從下拉列表中選擇「 - 選擇 - 」項目,則ajax不會調用偵聽器。我找不到任何好的解決方案。代碼如下。f:ajax在下拉菜單下不起作用返回null
<h:selectOneMenu value="#{cc.attrs.beanProperty}" converter="myConverter" >
<f:selectItem itemValue="#{null}" itemLabel="-- Select --" />
<f:selectItems value="#{cc.attrs.list}" var="item" itemValue="#{item}" itemLabel="#{item.name}" />
<f:ajax render=":form1" listener="#{myBean.listener}"/>
</h:selectOneMenu>
轉換器:
@FacesConverter(value = "myConverter")
public class VendorConverter implements Converter {
@Inject ObjectDAO dao;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if(value == null || value.contains("Select")){
return null;
}
return dao.find(Integer.valueOf(value));
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if(value == null) {
return null;
}
return ((MyObject) value).getId().toString();
}
}
任何人可以點解?
@BalusC,謝謝,從來沒有使用過的那一個,我想這取決於設計者在這一個決定(我不喜歡的是,在頁面元素由他們自己:)即使隱含消失的想法它可以解釋和合理) – Daniel 2014-10-20 09:27:57