У меня есть следующий валидатор:
<h:inputText id="orderC" value="#{columnEdit.selectedColumn.position}" maxlength="2" validatorMessage="#{columnEdit.valOrder}">
<f:validateLongRange maximum="#{columnEdit.maxOrder}" minimum="#{columnEdit.minOrder}" />
</h:inputText>
Валидатор принадлежит странице JSF , базовый компонент которой ViewScoped .
Соответствующие фрагменты кода:
public Integer getMaxOrder()
{
maxOrder = selectedFileFormat.getColumnList().size();
return maxOrder;
}
_
public Integer getMinOrder()
{
if (getIsCode())
{
minOrder = 1;
}
else
{
minOrder = 2;
}
return minOrder;
}
_
public String getValOrder()
{
valOrder = "Range of " + minOrder + " to " + maxOrder;
return valOrder;
}
_
На моей странице есть кнопка Отмена :
<p:commandButton value="#{i18n['xxx.cancel']}" action="#{columnEdit.cancel}" ajax="false">
<p:confirmDialog message="#{i18n['xxx.cancelConf']}" severity="warn" />
<f:param name="formatId" value="#{columnEdit.selectedFileFormat.id}"/>
<f:param name="navigationCase" value="edit"/>
</p:commandButton>
_
Чье действие:
public String cancel()
{
Integer theFormatId = selectedFileFormat.getId();
return "fileFormatEdit.xhtml"
}
_
Мой вопрос: , почему postConstruct моего компонента вызывается после нажатия кнопки отмены? Я обнаружил, что причина в f:validateLongRange
, но почему он создает новый columnEdit bean?