如何跳过<af:inputtext>?</af:inputtext>的验证阶段

时间:2013-12-03 13:29:01

标签: jsf oracle-adf

我有<af:selectOneChoice> immediate=trueautoSubmit=true<af:inputText> rendered=#{bean.someValue}required=trueimmediate=true

当我从choice 1选择<af:selectOneChoice>时,bean.someValue为false,因此不会呈现<af:inputText>。当我从choice 2中选择<af:selectOneChoice>时,bean.someValue为真,因此会呈现<af:inputText>

测试用例:最初,choice 1中选择了<af:selectOneChoice>,因此未呈现<af:inputText>。当我在choice 2中选择<af:selectOneChoice>时,<af:inputText>会被渲染并变为可见。当我再次在choice 1中选择<af:selectOneChoice>时,页面会抛出错误Enter a value,但<af:selectOneChoice>的值会更改为choice 1

在这种情况下,我希望<af:selectOneChoice>的值应该还原为choice 2

怎么做?

1 个答案:

答案 0 :(得分:0)

我对你的测试用例感到有些困惑,所以你说当inputText为空时,你将selectOneChoice更改为选择1,并且因为你的inputText“required”属性被设置为true,所以ADF抛出一个视觉错误提醒你“输入一个值”,直到现在一切都是你所期望的,对吗?但是虽然错误消息msg弹出,selectOneChoice仍然要改为选择1,这是问题吧?

我想在错误情况下阻止selectOneChoice值更改为选项1,您可以在后端bean的selectOneChoice组件的valueChangeListener中添加一些验证代码,以决定是否应该更改该值。