0
JSF 2.includeViewParams在驗證後不會設置值
一個帶有單個輸入的簡單表單,它經過驗證。使用o:表單試圖解決問題。
<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設置爲空。 這個URL很好,但是如果這些參數不是在 bean中設置的,那麼它的效果並不好。
這是爲什麼,如何解決?
考慮使用f:ajax作爲commandButton和o:viewParam而不是f:viewParam –
我意識到這篇文章是一個更好的渲染問題http://stackoverflow.com/questions/16187049/retain-original-get- request-parameters-across-postbacks。我現在可以撤回這個問題嗎? – april26