如果您从控制器的公共方法调用,则在播放中您始终遵循Redirect-After-Post-Pattern 。在大多数情况下,这是一个很好的行为,但有时它可能是令人讨厌的。所以我试图找出它在 play 1.1 中是如何工作的!:基本是一些字节码增强,这是在play.classloading.enhancers.ControllersEnhancer
. 在那里您可以发现仍然存在一些默认行为的例外情况:
- 如果您的方法由 package 中的注释进行注释
play.mvc
,例如 Before-annotation。 - 您使用 -Annotation 注释您的操作
ByPass
,此 Annotation 必须是内部类,因此名称 endsWith$ByPass
。
如果您总是想抑制重定向,这两种解决方案都很好。但是,如果您只想在特殊情况下这样做呢?然后就可以调用了ControllerInstrumentation.initActionCall()
。
我没有找到关于它的描述,我只是分析代码。那么我的结论是正确的还是有任何缺点?