2011-02-13 16 views
0

私はページを送信して新しいJSPに転送しようとしています。新しいリンクに送信して転送する方法

h:outputlinkは、ページを送信せずに新しいリンクを送信します。 h:commandlinkは、バックリンクBeanの機能とナビゲーションルールを実装する必要があります。このルールは、多くのリンクを多数のページに送信するとかなり複雑です。

もっと簡単な方法で新しいページに投稿してナビゲートする方法が必要だと思っています。

誰でも? Tnx!

更新:次のナビゲーションルールをBozhoの回答と組み合わせて使用​​しました。 Chromeのではなく、IEとFirefoxのための 作品:(リダイレクトが発生していない意味の作業とブラウザが同じページを再読み込みしません)

このコンポーネント:(短縮)。これにより

<rich:panelMenu mode="server"> 
    <rich:panelMenuItem styleClass="configChooserButton" icon="images/email.png" 
     disabledClass="configChooserButtonDisabled"> 
     <h:commandLink value="Email (#{email.numOfInstances})" action="email" /> 
    </rich:panelMenuItem> 
</rich:panelMenu> 

ナビゲーション・ルール:

<navigation-rule> 
    <from-view-id>*</from-view-id> 
    <navigation-case> 
     <from-outcome>email</from-outcome> 
     <to-view-id>/emailConfiguration.jsp</to-view-id> 
    </navigation-case> 
</navigation-rule> 
+0

ページ間のナビゲーションにPOSTを使用することは、SEOに優しいことに注意してください。 SearchbotsはPOSTフォームのインデックスを作成しません。 JSF 2.0は、ナビゲーションケースを理解する ''(および '')を提供することでこれを解決しましたが、代わりに通常のGETを行いました。あなたのサイトでSEOが重要な場合は、 ''(または単に「」)を使用することをおすすめします。 – BalusC

+0

firebugでリクエストと応答を確認してください – Bozho

+0

@Bozhoありがとう!それが豊富だと思う:panelMenuはmode = "non"に設定されているはずです – Ben

答えて

3

はい - (faces-config.xmlで定義されている)<h:commandLink>action属性にナビゲーション結果の名前を指定し

+0

h:outputLinkの意味ですか?そしてそれは提出を引き起こすでしょうか? – Ben

+0

@Ben in 'commandLink' – Bozho

+0

@Bozhoしかし、このコマンドコンポーネントのユーザに表示するテキストには値タグは使用されていません。コマンドリンクで? アクションタグを意味しましたか? – Ben

2

Bozhoの正解に追加する。 OPはどのバージョンのJSFが使用されているかを指定していませんでしたが、JSF 2.0ではimplicit navigationという概念があります。

これは、XMLナビゲーションルールのないナビゲーションを意味します。

あなたが「new_page.xhtml」というページにいくつかのページから行きたいと思った場合たとえば、あなたは以下を使用しますが:(、JSFでの作業のための余分なアドバイスとして

<h:commandButton value="something" action="new_page" /> 

可能な限りJSPを忘れてFaceletsを使用しようとすると、JSPは大きな苦痛になります)

+1

+1。私は1.2を仮定しました。なぜなら、OPは通常、2.0を使用すると明示的に言及するからですしかし、2.0の答えを持っても良いです。 – Bozho

+0

ありがとうございます。私はいつかすぐに2.0に近づくはずです。 しかし、今回は1.2だったのが正しいです:-) – Ben