2

私は正しいことを覚えていますか、それともパラメーターをすぐに true に設定すると、ブラウザーの URL が変更されますか? 正しい場合、このリンクが正しく機能しないのはなぜですか?



    <h:form>
    <h:commandLink immediate="true" action="/url_page.xhtml" value="Label link"/>
    </h:form>

いくつかの調査の後、作成者が文字列「?faces-redirect = true」をURLに追加したという質問を見つけました...それは私のように機能しますか? 別のものを設定する必要がありますか?ご協力ありがとうございました。

PS: h:link も試しましたが、おそらく、すべてを実行するわけではありません。その後、次のページが nullpointerException を返しますが、必要に応じて URL が変更されるためです...

ソリューションの完了: nullpointer 例外がサーブレット フィルターにあることがわかったため、h:commandLink のアクションを変更して、/url_page?faces-redirect=true を返すメソッドを呼び出します... @BalusC と @Matt に感謝します!

4

1 に答える 1

15

私は正しいことを覚えていますか、またはパラメータをすぐにtrueに設定すると、ブラウザのURLが変更されますか?

この属性には別の目的はありません。

h:linkナビゲーションに使用できます。属性h:commandLinkとしてBeanメソッドが必要です。actionアクションメソッドの結果は、ナビゲーションターゲットです。アクションメソッドが戻るnullか、voidメソッドである場合、現在のページが再ロードされます。文字列を返す場合、JSFはそれを受け取り、その結果に移動します。

アクションメソッドからリダイレクトを実行する場合は?faces-redirect=true、結果に追加できます。

return "login?faces-redirect=true";
于 2012-04-12T14:32:03.473 に答える