jsf - f:ajax not working when dropdown return null -
the dropdown linked converter. ajax works when dropdown value changed. but in case of selection of "-- select --" item dropdown, ajax not invoke listener. not find solution. code given below.
<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>
converter:
@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")){ homecoming null; } homecoming dao.find(integer.valueof(value)); } @override public string getasstring(facescontext context, uicomponent component, object value) { if(value == null) { homecoming null; } homecoming ((myobject) value).getid().tostring(); } }
could point solution?
since f:ajax
not beingness triggered itemvalue="#{null}"
or noselectionoption="true"
(which improve anyway null
usage) recommend following, prevent user go -- select -- value after selected
(unless want user go -- select -- alternative after picked other option)
1) replace
<f:selectitem itemvalue="#{null}" itemlabel="-- select --" />
with
<f:selectitem noselectionoption="true" itemlabel="-- select --" />
2) add together utilize of itemdisabled
<f:selectitem itemdisabled="#{not empty cc.attrs.beanproperty}" noselectionoption="true" itemlabel="-- select --" />
or instead of itemdisabled="#{not empty cc.attrs.beanproperty}"
utilize <h:selectonemenu hidenoselectionoption="true">
depend on preferences.
also, note in order find out whats wrong code can seek using placing <h:message
or <h:messages
in page
ajax jsf jsf-2.2 selectonemenu
No comments:
Post a Comment