By

Play! Framework Tips : un renderArgs.put dans un @After sert t'il à quelque chose

Considérons le contrôleur suivant :

app/controllers/Application.java

package controllers;

import play.mvc.After;
import play.mvc.Before;
import play.mvc.Controller;

public class Application extends Controller {

    @Before
    static void before() {
        System.out.println("before");
        renderArgs.put("nom", "Michel");
    }

    @After
    static void after() {
        System.out.println("after");
        renderArgs.put("nom", "Serge");
    }

    public static void index() {
        System.out.println("index");
        redirect();
    }
    public static void redirect() {
        System.out.println("redirect");
        renderArgs.put("nom", "Robert");
        render();
    }
}

Ainsi que le template associé : app/views/Application/redirect.html

#{extends 'main.html' /}
#{set title:'Home' /}

${nom}

Lequel des trois prénoms suivants, Michel, Serge et Robert, va t’il s’afficher dans votre navigateur à l’adresse http://localhost:9000 ?

La réponse est **Robert**.

Conclusion : Un renderArgs.put dans un @After ne sert à rien!