Почти уверен, что на это есть простой ответ, но просто не могу найти правильный синтаксис VTL.
В моем контексте я передаю карту, которая содержит другие карты. Я хотел бы ссылаться на эти внутренние карты по имени и назначать их в своем шаблоне. Внутренние карты создаются разными частями приложения, а затем добавляются в контекст.
в качестве примера
public static void main( String[] args )
throws Exception
{
VelocityEngine ve = new VelocityEngine();
ve.init();
Template t = ve.getTemplate( "test.vm" );
VelocityContext context = new VelocityContext();
Map<String,Map<String,String>> messageData = new HashMap<String, Map<String,String>>();
Map<String,String> data_map = new HashMap<String,String>();
data_map.put("data_1","1234");
data_map.put("a_date", "31-Dec-2009");
messageData.put("inner_map", data_map);
context.put("msgData", messageData);
StringWriter writer = new StringWriter();
t.merge( context, writer );
System.out.println( writer.toString() );
}
Шаблон - test.vm
#set ($in_map = $msgData.get($inner_map) )
data:
$in_map.data_1
$in_map.a_date
$msgData.get($inner_map)
против$msgData.get("inner_map")
? - person Snekse   schedule 27.09.2013