在游戏中,如果您使用控制器的公共方法进行呼叫,则始终遵循Redirect-After-Post-Pattern。在大多数情况下,这是一种很好的行为,但有时它可能是令人讨厌的。
所以我试着找出它在Play 1.1中是如何工作的!
基本是一些字节码增强,在play.classloading.enhancers.ControllersEnhancer
中完成。
在那里你可以发现仍然存在一些默认行为的例外:
play.mvc
中的注释注释,例如注释前。 ByPass
- 注释注释您的操作,此注释必须是内部类,因此名称ends $ByPass
。如果您始终要禁止重定向,则两种解决方案都可以。但是如果你只想在特殊情况下这样做呢?
然后你可以拨打ControllerInstrumentation.initActionCall()
。
我没有找到关于它的描述,我只是分析代码。那么我的结论是正确的还是有任何缺点?
答案 0 :(得分:2)
据我所知,你的假设是正确的。
那就是说,根据我的理解,你想要一个在执行后结束并且什么都不返回的方法?不要在最后添加任何“render”调用(或任何对另一个方法的调用),这应该有效。我用它来做cron工作。