题
我有一个小问题与使用有条件地进行评价表达的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:
(资料来源: jboss.org)
如果任何JSF阶段失败,生命周期的跳过来呈现的响应,以避免工作上的无效的输入。你可以使用 h:消息 和 h:消息 标签查报告的错误(虽然因为你使用的AJAX,你必须把他们的东西,将获得重新呈现的。
我猜想如果你设置的 ajaxSingle 属性 aj4:支持 标记,你将获得行为您想要的。该文件说,这只会提交的价值对控制,因此文本领域将不能参与适用的要求值/进程验证/工艺的新阶段。
其他提示
什么是为myBean的范围?如果它的请求范围内,然后将其值当你点击复位按钮和输入字段可能在所有被处理(如果渲染解析为“假”)。
不隶属于 StackOverflow