如何影响播放控制器中的重定向行为?

nie*_*els 13 playframework playframework-1.x

在游戏中,如果从控制器的公共方法调用,则始终遵循Redirect-After-Post-Pattern.在大多数情况下,这是一种很好的行为,但有时它可能是令人讨厌的.所以我试着找出它在play 1.1中是如何工作的!:基本是一些字节码增强,这是在play.classloading.enhancers.ControllersEnhancer.在那里你可以发现仍然存在一些默认行为的例外:

  1. 如果您的方法由包中的注释注释play.mvc,例如Before-annotation.
  2. 您使用ByPass-Annotation 注释您的操作,此Annotation必须是内部类,因此名称endsWith $ByPass.

如果您总是想要抑制重定向,那么这两种解决方案都可以.但是如果你只想在特殊情况下这样做呢?然后你可以打电话ControllerInstrumentation.initActionCall().

我没有找到关于它的描述,我只是分析代码.那么我的结论是正确的还是有任何缺点?

Per*_*ega 2

据我所知,你的假设是正确的。

也就是说,据我了解,您想要一个在执行后结束且不返回任何内容的方法?不要在末尾添加任何“渲染”调用(或对其他方法的任何调用),这应该可以工作。我用它来执行 cron 作业。