我有以下验证:F:validateLongRange的Bean实例,它应该不会
<h:inputText id="orderC" value="#{columnEdit.selectedColumn.position}" maxlength="2" validatorMessage="#{columnEdit.valOrder}">
<f:validateLongRange maximum="#{columnEdit.maxOrder}" minimum="#{columnEdit.minOrder}" />
</h:inputText>
的验证属于其支持bean是ViewScoped一个JSF页。
相关的代码片段:
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"
}
_
我的问题:为什么我的bean的postConstruct按下取消按钮后,被称为?我发现原因是f:validateLongRange
,但为什么它实例化一个新的列编辑 bean?
[为什么f:validateDoubleRange只适用于@SessionScoped?](http://stackoverflow.com/questions/7445417/why-does-fvalidatedoublerange-only-work-for-sessionscoped) – BalusC 2011-11-08 03:46:05