जहां तक मुझे पता है, Google क्लोजर टेम्पलेट जावा ऑब्जेक्ट को टेम्पलेट में पास करने की अनुमति नहीं देता है (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}
मैं अगर मैं ऐसा करना चाहते हैं सोच रहा हूँ मैं शायद एक मानचित्र में कोर्स वस्तु चालू करने के लिए प्रतिबिंब का उपयोग करता है एक कस्टम समारोह लिखने के लिए है? मैं जावा प्रतिबिंब के साथ अनुभव नहीं कर रहा हूँ। क्या ऐसा कोई कार्य उपलब्ध है?
initilaizing params.put कथन ठीक है, अगला, मैं इस मान (सोयाडाटा) को टेम्पलेट्स में कैसे पास कर सकता हूं। – gokul