У меня есть три входа, которые требуют коллективной проверки. Рассмотрим следующий обманчивый пример:
- packCapacity: Пакет ручек может иметь настраиваемую емкость, т. Е. 5, 10 и т. Д.
- generalAllowedBrokenPens: количество ручек, которые обычно можно разбить в пачке ручек. Это число равно 0 <= generalAllowedBrokenPens <= packCapacity </li>
- maxAllowedBrokenPens: это максимальное количество перьев, которое можно разбить в пачке перьев. Это число - GeneralAllowedBrokenPens <= maxAllowedBrokenPens <= packCapacity. </li>
В Primefaces / JSF у меня есть что-то вроде следующего:
<h:panelGrid id="packcapacityinfo" columns="2">
<h:outputText value="Capacity:"/>
<p:spinner value="#{penPackBackingBean.packCapacity}" min="1" max="50">
<p:ajax event="change" update="@this,packcapacityinfo"/>
</p:spinner>
<h:outputText value="Allowed Broken Pens:"/>
<p:spinner value="#{penPackBackingBean.generalAllowedBrokenPens}" min="0" max="#{penPackBackingBean.packCapacity}">
<p:ajax event="change" update="@this,packcapacityinfo"/>
</p:spinner>
<h:outputText value="Maximum Allowed Broken Pens:"/>
<p:spinner value="#{penPackBackingBean.maxAllowedBrokenPens}" min="#{penPackBackingBean.generalAllowedBrokenPens}" max="#{penPackBackingBean.packCapacity}">
<p:ajax event="change" update="@this,packcapacityinfo"/>
</p:spinner>
</h:panelGrid>
Это на полпути работает, но счетчики не обновляются в соответствии с входными данными. Например, если я сделаю следующее:
- Установить packCapacity на 20
- Установить для общих разрешенных разбитых ручек значение 5
- Изменить упаковочную емкость на 4
- generalAllowedBrokenPens остается на значении 5 и не обновляется автоматически до 4
Вот главный вопрос:
Есть ли способ выполнить такую проверку в реальном времени в Primefaces / JSF? Если да, то может кто-нибудь подробно описать необходимые шаги, то есть изменения в XHTML, изменения в бинах, валидаторы и т. Д.
Большое спасибо