4

私は JSF に不慣れで、単純な JSF アプリケーションに問題があります。WebLogic 10.3.2 (11g) で Facelets と Richfaces を使用しています。アプリケーションは基本的に 3 ページです。

A <--> B <--> C

中間の矢印はナビゲーション ルールを示します。ナビゲーションはa4j:commandButtonsを介して実行されます。問題は Firefox 3.5 にあります。B から C をクリックすると、wyciwig://から始まる URL が取得されます。詳細については、開始 URL は次のとおりです。

http://localhost:7001/myapp/index.faces

B から C に移動したときに取得する URL は次のとおりです。

wyciwyg://20/ http://localhost:7001/myapp/index.faces

Google 検索から、wyciwig が WhatYouCacheIsWhatYouGet であることがわかったので、問題はおそらくキャッシュに関連しています。その方向で、私は2つのことをしました:

A. 次のメタ タグを追加しました。

<meta http-equiv="Pragma" content="No-cache"/>
<meta http-equiv="Cache-Control" content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="Expires" content="-1"/>

B.ここで提案されているように、HTML ヘッダー タグを追加するために PhaseListener を追加しました。

残念ながら、問題は解決しません。

関連する可能性のあるもう 1 つのことは、何らかの理由で、ナビゲーションがブラウザーのアドレス バーに表示される URL を変更しないことです。a4j:commandButtons の上にマウスを置いたときにステータス バーに表示されるリンクは、常に

http://localhost:7001/myapp/index.faces#

したがって、質問は次のとおりです。

  1. このwyciwyg://20/プレフィックスが表示される理由と、これを克服するにはどうすればよいですか?
  2. ページ間を移動するときに URL を変更するにはどうすればよいですか? これで「戻るボタン」は機能しますか?

乾杯!

更新 1:これらの人(ポルトガル語のテキスト) は、すべての a4j:commandLink を a4j:htmlCommandLink に置き換えると問題が解決すると言っています私はそうしました、そして彼らは正しいです。理由がわかりません。

4

5 に答える 5

5

実際、答えはかなり単純で、RichFaces FAQ で説明されています。よく読むことをお勧めします。

ajax コンポーネントはページ ナビゲーション用に設計されていないため、この方法で使用すると機能しません。

http://community.jboss.org/wiki/CommonAjaxRequestsProblems#navigationを参照してください

a4j:htmlCommandLink が機能する理由は、実際には ajax コンポーネントではなく、単純な古い HTML リンク タグであるためです。

物事を説明するのに役立つことを願っています。

于 2010-04-21T09:56:41.390 に答える
2

これは、JSF の問題というよりは Firefox の問題です。実際、これらのリンクがアドレス バーに表示されることはありません。Firefox 環境またはそのプラグインの 1 つが台無しになっている可能性があります。このトラブルシューティング ガイドを試してください。無駄な場合は、すべてをアンインストールして、Firefox をクリーンに再インストールします。最終的には、Firefox を搭載した物理的に別のマシンでテストして、実際に Firefox または Web アプリケーションが原因であるかどうかを確認することもできます。

于 2009-12-31T13:24:38.863 に答える
2

これは部分的な回答です。つまり、問題を回避する方法を示していますが、最初に問題が発生した理由は説明していません。

この問題の原因となっているコンポーネントを明確にするために、各ボタンを 5 つのコンポーネントに置き換えました。

  • a4j:コマンドボタン
  • a4j:commandLink
  • h:コマンドボタン
  • h:commandLink
  • a4j:htmlCommandLink

各コンポーネントには同じアクションがあります。動作しないのは最初の 2 つ (a4j:commandButton、a4j:commandLink) です。他は特に問題ありません。したがって、それを回避するには、h:commandButton、h:commandLink、a4j:htmlCommandLink のいずれかを使用します。

URL が正しく表示されないことについては、こちらこちらで説明されているように、JSF 1.2 の既知の問題のようです (2.0 で解決される可能性があります) 。この問題は、Seam、PrettyFaces などのフレームワーク/ライブラリを使用して解決されます。

于 2010-01-05T09:36:42.443 に答える
0

あなたはこの方法を試すことができます:

  1. Mozillaを開く
  2. AddressBarと入力します。about:config
  3. セットするbrowser.cache.memory.enable = FALSE
  4. ブラウザの再試行
  5. ページを読み込んで試してください。

幸運を!:)

于 2010-04-21T08:21:26.220 に答える
0

同じ問題があり、ナビゲーションで URL が更新されませんでした。

faces-config.xml 内の各ナビゲーション ルール内にリダイレクト タグを追加すると、問題が解決しました。

次の URL に解決策があります。

http://www.java-samples.com/showtutorial.php?tutorialid=603

于 2010-12-21T20:16:48.770 に答える