Validation 即使验证失败也要更新JSFbean吗?
当验证失败时,JSF bean通常不会更新,这在某些情况下会导致非常糟糕的效果,例如,在使用Validation 即使验证失败也要更新JSFbean吗?,validation,jsf,primefaces,Validation,Jsf,Primefaces,当验证失败时,JSF bean通常不会更新,这在某些情况下会导致非常糟糕的效果,例如,在使用p:inplace的facet=“output”时: #{test.myBooleanText} 输出方面定义了就地标签,这些标签应本地化,而不是标准标签: 私有布尔myBoolean; 公共字符串getMyBooleanText(){ 返回myBoolean?“Ja”:“不”; } 但是,当验证失败时,inplace输出方面显示复选框的旧值,而不是实际值。如果单击它,将显示一个实际值 如何解决这个
p:inplace
的facet=“output”
时:
#{test.myBooleanText}
输出方面定义了就地标签,这些标签应本地化,而不是标准标签:
私有布尔myBoolean;
公共字符串getMyBooleanText(){
返回myBoolean?“Ja”:“不”;
}
但是,当验证失败时,inplace输出方面显示复选框的旧值,而不是实际值。如果单击它,将显示一个实际值
如何解决这个问题并正确实现输出?将值提交给bean将是最好的,因为只要没有实际执行任何操作(由验证断言),我对客户端和服务器上的值的一致状态没有问题 我自己还没试过,但给我一个机会:
<p:inplace id="checkboxInplace" effect="none">
<f:facet name="output">#{test.myBoolean ? 'Ja' : 'Nein'}</f:facet>
<f:facet name="input">
<h:selectBooleanCheckbox value="#{test.myBoolean}" immediate="true">
<p:ajax update="@parent" />
<h:selectBooleanCheckbox />
</f:facet>
</p:inplace>
#{test.myBoolean'Ja':'Nein'}
都是一样的。EL不会重新执行,但输入的值会保留在客户端。如果删除facet会发生什么?只有inplace中的select布尔值。实际上,如果没有切面,它将无法正常工作。它总是显示空标签。。。