Theo như tôi biết, Mẫu đóng cửa của Google không cho phép truyền đối tượng Java vào mẫu (so với FreeMarker). Vì vậy, tôi không thể thực sự làm điều gì đó như:Chuyển đối tượng Java vào mẫu đóng?
// 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}
Tôi nghĩ rằng nếu muốn thực hiện điều này, tôi có thể phải viết chức năng tùy chỉnh sử dụng Reflection để biến đối tượng Course thành Bản đồ? Tôi không có kinh nghiệm với Java Reflection. Có chức năng như vậy không?
initilaizing câu lệnh params.put là tốt, tiếp theo, làm cách nào tôi có thể chuyển giá trị này (soydata) cho các mẫu. – gokul