【发布时间】:2014-03-12 19:14:46
【问题描述】:
JSF 2.
具有经过验证的单个输入的简单表单。使用 o:form 尝试解决问题。
<f:view>
<f:metadata>
<f:viewParam name="info2" value="#{myClass.info2}" />
<f:viewParam name="info1" value="#{myClass.info1}" />
<f:event listener="#{myClass.init(}" type="preRenderView" />
</f:metadata>
<o:form includeViewParams="true">
<h:outputText value="Enter some info for #{myClass.info1}" />
<h:inputText id="input" value="#{myClass.info3}"
validator="myValidator" />
<br />
<h:commandButton action="#{myClass.action()}" value="Enter some info" />
<br />
<h:message for="input" />
<br />
<h:outputText value="#{myClass.info2}" />
</o:form>
</f:view>
使用此 URL 调用
http://localhost:8080/test/test.xhtml?info1=hello&info2=there
当我在输入字段中输入一个值并且验证失败时,页面返回 相同的 URL,但 myClass.info1 和 myClass.info2 都设置为 null。太好了 URL 被保留,但如果这些参数没有在 豆子。
为什么会这样,我该如何解决?
【问题讨论】:
-
考虑使用 f:ajax 作为 commandButton 和 o:viewParam 而不是 f:viewParam
-
我意识到这篇文章是对stackoverflow.com/questions/16187049/… 问题的更好呈现。我现在可以撤回问题吗?