3

現在のページへのリクエストを生成した前のページのタペストリーページクラスまたは名前を取得する方法はありますか?

タペストリーページに@Persistプロパティがあり、参照ページが現在のページまたは他のタペストリーページの事前定義されたセットでない限り、リセットする必要があります。

Tapestryは、Requestオブジェクトを手動で調べることなく、「リファラー」ページのクラスまたは名前にアクセスするためのクリーンな方法を提供しますか?

そして、どういうわけか参照ページのクラス/名前を取得できたとすると、@Persist-edプロパティを条件付きでリセットするのに最適な場所はどこでしょうか?SetupRender()またはOnActivate()

4

1 に答える 1

4

リンクをレンダリングしたページを取得するための定義済みの方法はないと思います。簡単に識別できるのは、ページがそれ自体を呼び出したときだけです (たとえば、イベントをトリガーしてからページ自体に転送するイベントリンクのため)。

状況に応じて、別のソリューションを選択できます。唯一の最良の答えはありません。これが役立つかもしれません:ページ間でデータを渡す

  • 最後のページを保存する @SessionState オブジェクトは簡単ですが、ユーザーが複数のウィンドウ/タブを開いたり、ブラウザーで前方/後方を使用したりすると、おそらく台無しになります。
  • ページ名を含むアクティブ化コンテキストも簡単ですが、ユーザーがパラメーターを台無しにする可能性があります。

.

プロパティをセットアップ/リセットする場所も、何をしているかによって異なります。通常は onActivate() メソッドを使用するとき に呼び出されるものですが、このメソッドは、EventLink または Submit がトリガーされたときにも 2 回呼び出されます。

于 2012-04-11T21:59:00.140 に答える