Spring 3.2.0、Spring webflow、JSF 2.1.11、Primefaces 3.4.1、Primefaces mobile 0.9.3 でアンケートを実装しています
仕様では、すべての質問を同じ物理的な .xhtml ページに配置しますが、一度に 1 つのセクションのみが表示されるようにセクションに分けます。モバイル Web サイトでは、すべてのセクションに pm:view を使用しています。
すべてのセクションが同じ Bean を参照してデータを送信し、すべてのセクションが入力された後に検証する必要があるため、ポスト ナビゲーションを使用する必要があります。これが私のコードの例です:
<pm:page id="page">
<pm:view id="page1">
<pm:content>
<h:form id="page1Form">
<h:panelGroup id="form1Container" >
<p:inputText id="input1" value="${managedBean.property1}" required="true" />
<p:commandButton id="next" action="pm:page2" value="Next" process="form1Container" update="form1Container :page2Form"/>
</h:panelGroup>
</h:form>
</pm:content>
</pm:view>
<pm:view id="page2">
<pm:content>
<h:form id="page2Form">
<h:panelGroup id="form2Container" >
<p:inputText id="input2" value="${managedBean.property2}" required="true" />
<h:commandButton id="registerSave" action="save" value="Save"/>
</h:panelGroup>
</h:form>
</pm:content>
</pm:view>
</pm:page>
検証は正しく起動し、「次へ」ボタンを押すとinput1の値が更新されます。また、サーバーログにajaxリクエストが表示されます。ページに検証エラーがあり、リクエスト/レスポンスにエラーがなかったことを firebugs で確認できます。
ページ2に到達するために何が間違っていますか?
生成された html ページで page2 のコンテンツが css で隠されていることがわかります。javascript を使用して表示できるようにすることもできますが、すべての css クラスが html から欠落しています (jQuery はパフォーマンスのためにそれを行うと思います)。この問題の回避策として JavaScript を使用する方法はありますか?
再度、感謝します、
マティア
ps 「次へ」ボタンで ajax="false" も試しましたが、それでも機能しません。アクション文字列を Bean メソッドの戻りオブジェクトとして配置しようとしましたが、うまくいきませんでした。