この質問は、次の投稿を「拡張」しています
ダイアログで開いているカスタム URL を作成しているとします。URL例「test.html?id=123」
「id=123」部分を h:form アクションに挿入して、追加のパラメーター「id=123」部分で同じビューに戻るようにします。
私は上記の投稿に従い、ViewHandlerWrapper を拡張するカスタム ViewHandler という 3 番目のソリューションに取り組みました。
アクションを変更すると、フォームが同じオリジンにリダイレクトされます (今までは機能していました)。
最初の問題 次の xhtml ページがあるとします。
<f:metadata>
<f:event type="preRenderView" listener="#{bean.init}" />
<f:viewParam name="id" value="#{bean.id}"/>
</f:metadata>
<h:form>
...
...
</h:form>
- 上記を投稿すると、バックエンドで正しい id 値が取得されます。
- 投稿を再送信すると、null 値が返されますが、URL は同じままです (test.html?id=xxx)
- 2 回目の送信で null 値を取得する理由がわかりません
2 番目の問題は、フォームを検証してすべて問題ない場合、submit メソッドが新しい URL "test.html?force-redirect=true..." を返すことですが、これは起こらず、代わりに URL がh:form アクションに入力されたもの (新しい URL でカスタム リダイレクトを作成すると動作し、「test.html?faces-redirect=true...」にリダイレクトされます)。
私の質問は、理論的なものだと思いますが、これは想定される動作ですか?
ありがとう、ディマン