我有一个小问题与使用有条件地进行评价表达的jsf/a4j

这是我的代码

<a4j:form>
         <h:inputText id="id1" value="#{mybean.myvalue}" size="1"
                   required="#{not mybean.condition}"
                   rendered="#{not mybean.condition}"
                   requiredMessage="Put a number in here" />

           <h:selectBooleanCheckbox value="#{mybean.condition}">
                <a4j:support event="onclick" reRender="id1"/>
            </h:selectBooleanCheckbox>

<a4j:commandButton action="#{mybean.myaction}" value="Do something" />

 </a4j:form>

布尔框有条件地启用/停用的验证。

这不工作:该a4j:命令按钮干脆跳过验证。

谢谢。

有帮助吗?

解决方案

如果的 inputText 失败的验证(进程验证阶段),然后价值 mybean.条件 将不会更新(进程新阶段)。由于文字的使用 需要 属性,这是非常可能的。

生命周期从RichFaces doc:

alt text
(资料来源: jboss.org)

如果任何JSF阶段失败,生命周期的跳过来呈现的响应,以避免工作上的无效的输入。你可以使用 h:消息h:消息 标签查报告的错误(虽然因为你使用的AJAX,你必须把他们的东西,将获得重新呈现的。

我猜想如果你设置的 ajaxSingle 属性 aj4:支持 标记,你将获得行为您想要的。该文件说,这只会提交的价值对控制,因此文本领域将不能参与适用的要求值/进程验证/工艺的新阶段。

其他提示

什么是为myBean的范围?如果它的请求范围内,然后将其值当你点击复位按钮和输入字段可能在所有被处理(如果渲染解析为“假”)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top