Comment jouent les contrôleurs des variables avec le Injecter nom propre dans des modèles?

StackOverflow https://stackoverflow.com/questions/4036904

  •  26-09-2019
  •  | 
  •  

Question

Jouer à obtenir docs commencé , ils montrent ce contrôleur:

public static void index() {
  Post frontPost = Post.find("order by postedAt desc").first();
  List<Post> olderPosts = Post.find("order by postedAt desc").from(1).fetch(10);
  render(frontPost, olderPosts);
}

Ensuite, dans le modèle du frontPost et olderPosts sont utilisés sans aucune application spéciale!

<a href="#">${frontPost.title}</a>

Comment ces noms Lecture préserve?

Était-ce utile?

La solution

Il est fait par injection de code.

Lors de la compilation, certaines classes sont améliorées (avec injection de code, par Javassist ), afin d'ajouter des informations, telles que les noms de variables.

Dans la méthode render, cette opération se fait par la classe "play.classloading.enhancers.LocalvariablesNamesEnhancer.LocalVariablesNamesTracer".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top