プレイ中は、コントローラーの public-method から呼び出す場合、常にRedirect-After-Post-Pattern に従います。ほとんどの場合、これは適切な動作ですが、場合によっては厄介な場合があります。そこで、play 1.1 でどのように動作するかを調べてみました!: 基本は、.NET で行われるバイトコード拡張play.classloading.enhancers.ControllersEnhancer
です。そこには、デフォルトの動作のいくつかの例外がまだ存在することがわかります。
- メソッドが package の注釈によって注釈付けされている場合、
play.mvc
たとえば Before-annotation です。 - アクションに
ByPass
-Annotation で注釈を付けます。この Annotation は内部クラスである必要があるため、名前は endWith$ByPass
です。
リダイレクトを常に抑制したい場合は、どちらのソリューションでも問題ありません。しかし、特別な状況でのみそれを行いたい場合はどうしますか? その後、 を呼び出すことができますControllerInstrumentation.initActionCall()
。
それについての説明は見つかりません。コードを分析するだけです。私の結論は正しいですか、それとも欠点がありますか?