2010-10-10 7 views
13

En juego, siempre sigue el Redirect-After-Post-Pattern si llama desde un método público de un controlador. Esto es en la mayoría de los casos un buen comportamiento, pero en algún momento podría ser desagradable. Así que traté de averiguar cómo funciona en el juego 1.1 !: El básico es una mejora de código de bytes, que se realiza en play.classloading.enhancers.ControllersEnhancer. Allí se puede encontrar que todavía existe alguna excepción del comportamiento por defecto:¿Cómo puedo influir en el comportamiento de redirección en un controlador de juego?

  1. Si su método es anotado por una anotación del paquete play.mvc, por ejemplo la anotación antes.
  2. Anota tu acción con el ByPass -Anotación, esta anotación debe ser una clase interna para que el nombre termine con $ByPass.

Ambas soluciones están bien si siempre quiere suprimir la redirección. Pero, ¿y si solo quieres hacerlo en una situación especial? Luego puede llamar al ControllerInstrumentation.initActionCall().

No encuentro la descripción, simplemente analizo el código. Entonces, ¿mi conclusión es correcta o tiene algún inconveniente?

+0

initActionCall es realmente útil si necesita llamar a otro punto de vista, pero no quiere volver a dirigir: http://groups.google.com/group/play-framework/browse_thread/thread/59c2aebefb94aac5/62651072b74275e1?lnk=gst&q=redirect # 3f5ccb63d4652565 – Stefano

Respuesta

2

Por lo que sé, tus suposiciones son correctas.

Dicho esto, por lo que entiendo, ¿quiere un método que finaliza después de la ejecución y no devuelve nada? No agregue ninguna llamada de "renderización" al final (o cualquier llamada a otro método) y eso debería funcionar. Lo uso para trabajos cron.

Cuestiones relacionadas