私の知る限り、Google Closure Template は Java オブジェクトをテンプレートに渡すことを許可していません ( FreeMarkerと比較して)。だから私は本当に次のようなことはできません:
// Java file
class Course {
...
public function getName() {
return name;
}
}
// Main function
public static void main(String args[]) {
// Get all courses
List<Course> courses = Courses.getAllCourses();
Map<String, Object> params = new HashMap<String, Object>();
params.put("courses", courses);
String out = tofu.newRenderer("template.listCourses").setData(params);
}
// Soy file
/**
* @param courses List of courses
*/
{template .listCourses}
Courses List! <br/>
{foreach $course in $courses}
New Course: {$course.name}
{/foreach}
{/template}
これを行いたい場合、リフレクションを使用して Course オブジェクトを Map に変換するカスタム関数を作成する必要があると思いますか? 私は Java リフレクションの経験がありません。そのような機能はありますか?