freemarker list嵌套 java
时间: 2023-07-20 19:03:21 浏览: 48
在使用 FreeMarker 模板引擎时,通过以下步骤可以在模板中使用 Java 的 list 嵌套。
1.准备数据
首先,您需要准备一个 Java 对象,该对象包含嵌套列表。例如,您可以创建一个包含以下内容的类:
```
public class Person {
private String name;
private List<Address> addresses;
// getters and setters
}
public class Address {
private String city;
private String state;
// getters and setters
}
```
创建一个包含 Person 对象的 List:
```
List<Person> people = new ArrayList<>();
Person person1 = new Person();
person1.setName("John Smith");
List<Address> addresses1 = new ArrayList<>();
Address address1 = new Address();
address1.setCity("New York");
address1.setState("NY");
addresses1.add(address1);
person1.setAddresses(addresses1);
people.add(person1);
Person person2 = new Person();
person2.setName("Jane Doe");
List<Address> addresses2 = new ArrayList<>();
Address address2 = new Address();
address2.setCity("San Francisco");
address2.setState("CA");
addresses2.add(address2);
person2.setAddresses(addresses2);
people.add(person2);
```
2.在模板中嵌套列表
在 FreeMarker 模板中,您可以使用以下语法嵌套列表:
```
<#list people as person>
Name: ${person.name}
<#list person.addresses as address>
City: ${address.city}
State: ${address.state}
</#list>
</#list>
```
在此示例中,使用 `people` 列表作为外部循环,并且 `person.addresses` 列表嵌套在内部循环中。在模板中,您可以像访问任何其他属性一样访问列表中的元素。
3.输出结果
将数据和模板传递给 FreeMarker 引擎进行处理,然后将结果输出到所需的位置。例如,在 Spring MVC 中,您可以使用以下代码:
```
ModelAndView modelAndView = new ModelAndView("template");
modelAndView.addObject("people", people);
return modelAndView;
```
其中 `template` 是模板文件的名称,`people` 是在模板中使用的变量名称。
这样,当模板被渲染时,将显示每个人的姓名以及他们的地址列表。