1

プロジェクトのページを完全にステートレス(今後さらに多くのページ)にし、ページのバージョン番号を削除しようとしています。/mypage/?0

ページがtrueに設定され、 trueが返されることstatelessHintも確認しました。また、アノテーションを使用して、ページとその子コンポーネントが本当に、本当にステートレスであることを確認します。onBeforeRenderisStateless@StatelessComponent

したがって、すべてがステートレスであるように見えますが、バージョンパラメータは引き続きURLに追加されます

多くのコンポーネントと多くの継承が含まれる巨大な構造であるため、コードを添付できません。もちろん、どこに問題があるのか​​誰かに教えてもらえるとは思っていませんが、Wicketのソースにブレークポイントを設定して何が問題になっているのかを知るためのヒントを教えてくれる人がいることを願っています。たとえば、バージョンパラメータを追加するかどうかを決定する責任があるWicketクラスを誰かに教えてもらえますか?

よろしくお願いします、ピーター

4

2 に答える 2

5

ページがステートレスであることを確認するには、Page#isPageStatelessの代わりにを呼び出す必要がありPage#isStatelessます。

@StatelessComponent完全を期すために、それ自体は何もしないことにも言及しますがStatelessChecker

getComponentPreOnBeforeRenderListeners().add(new StatelessChecker());

Application#init。私はそれがかなりうまく機能し、ステートフルなコンポーネントを見つけるはずだと思います。

于 2013-01-17T08:32:35.107 に答える
2

明らかに、@StatelessComponentすべての子コンポーネントに至るまで常に信頼できるとは限りません:(

これをデバッグするには、のログレベルをorg.apache.wicket.Pageに設定します。これによりDEBUG、コンソール出力に大量の行が追加されます。ステートフルであるレンダリングされたコンポーネントに関するメッセージを検索するための「ステートレスではない」のGrep。

私の場合、それはImage、そのgetStatelessHint()メソッドが返されましたfalse(理由はわかりません)。

于 2013-01-16T18:44:29.937 に答える