0

私はprimefaces 3.1を使用しています。メニューバーにアイコンを追加したいです。ユーザーがアイコンをクリックすると、home.jsfページに直接移動します。以下、ユーザーがアイコンをクリックすると、ページはインデックスに移動しますが、そのURLは異なるようです。ありがとうどれも役立ちます。

<p:menuitem >
  <p:commandLink action="home.jsf" >
     <p:graphicImage height="24" 
                     width="24" 
                     value="resources/images/home.ico" 
                     style="border:none" />     
  <p:commandLink>
</p:menuitem>
4

1 に答える 1

2

やJSF<h:form>などのコマンド コンポーネントによってが送信されると、リダイレクトではなく転送が実行されます。そのため、URL は同じままです。属性に追加するだけで、期待どおりに機能します。区別については、リダイレクトとナビゲーション/転送の違いと、いつ何を使用するかに対する BalusC の回答を参照してください。JSFでナビゲートする方法は?URL を現在のページ (前のページではなく) に反映させる方法<h/p:commandButton><h/p:commandLink>?faces-redirect=trueaction

とはいえ、コマンド コンポーネントを使用してナビゲーションを実行することはお勧めできません。代わりに<h:link>orコンポーネントを使用してください。<h/p:button>これらは、ナビゲーション ケースの結果に対する get 要求をトリガーするため、URL が変更されます。コマンド コンポーネントは、サーバー アクションをトリガーするように設計されており、単純なナビゲーションを実行しません。詳細については、h:commandLink の代わりに h:outputLink を使用する必要がある場合に対する BalusC の回答を参照してください。.

于 2013-10-02T08:44:49.543 に答える