Как игровые контроллеры вводят переменные с правильным именем в шаблоны?

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

  •  26-09-2019
  •  | 
  •  

Вопрос

в Играть Начало работы Документы, они показывают этот контроллер:

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);
}

Затем в шаблоне FrontPost и Hearposts используются без какого-либо специального отображения!

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

Как воспроизведение консервирует эти имена?

Это было полезно?

Решение

Это сделано по инъекции кода.

При компиляции некоторые классы усиливаются (с инъекцией кода, по Javassist), чтобы добавить некоторые информацию, такие как имена переменных.

В методе визуализации эта операция выполняется классом «Play.Classloading.enhancers.localvariablesnamesenHancer.localvariablesnameSraceSermanmannameSrablaceSermanmanmanmanmancaster».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top