У меня есть selectonemenu, который включает в себя некоторые элементы. И нулевой элемент для показа «пожалуйста, выберите один». Моя цель - запросить некоторые данные при выборе одного из них. И если я выберу «пожалуйста, выберите один», сделайте еще одну вещь.primefaces selectonemenu change event не работает для нулевого значения
Но в конечном итоге событие изменения запускается для нормальных значений, но если я выберем пункт «пожалуйста, выберите один», он не будет запущен. Спасибо за вашу помощь. Вот мой код.
<p:selectOneMenu style="width: 200px" id="positionForward" value="#{hrProcessController.queryCriteria.positionForward}" converter="listConverter"
effect="fade" var="u" filter="true" filterMatchMode="startsWith" validator="#{hrProcessController.isOpenPositionForwValid}">
<f:selectItem itemLabel="#{menu['onemenu.choose']}" itemValue="#{null}"/>
<f:selectItems value="#{hrProcessController.positionList}" var="position" itemLabel="#{position.name}" itemValue="#{position}" />
<p:ajax event="change" listener="#{hrProcessController.onPositionSelect}" update="openPositionForward"/>
<p:column>
<h:outputText value="#{u==null ? menu['onemenu.choose'] : u.name}" />
</p:column>
</p:selectOneMenu>
public void onPositionSelect()
{
if(queryCriteria.getPositionForward()!=null)
{
OpenPositionQueryCriteria criteria = new OpenPositionQueryCriteria();
criteria.setPosition(queryCriteria.getPositionForward());
List<OpenPosition> openPositions = openPositionService.searchOpenPosition(criteria);
setOpenPositionList(openPositions);
}
else
{
List<OpenPosition> positions = openPositionService.getActiveOpenPositionList();
setOpenPositionList(positions);
}
}
Попробуйте заменить '<е: SelectItem itemLabel = "# {меню [ 'onemenu.choose']}" ItemValue =" # {нуль } "/>' by ' ' –
грустно это не работает @MathieuCastets –
[stackoverflow.com/a/24321980 /1391249](http://stackoverflow.com/a/24321980/1391249) – jjd