java 在springboot中使用freemarker动态生成html表格,给我一个示例
时间: 2023-09-03 18:26:01 浏览: 341
springboot 整合 freemarker代码实例
### 回答1:
当使用 Spring Boot 和 FreeMarker 来生成动态 HTML 表格时,您需要在项目的依赖中添加 FreeMarker 的库以及 Spring Boot 的 Web 模块库。在完成这些步骤后,您可以按照以下示例来使用 FreeMarker 生成 HTML 表格。
首先,您需要创建一个数据模型类,表示您要在表格中呈现的数据:
```java
public class Person {
private String name;
private int age;
private String gender;
// 构造函数,getter 和 setter 方法
}
```
接下来,您需要创建一个 FreeMarker 模板文件,其中包含要生成的 HTML 表格的结构和内容。例如,下面的模板使用 `<table>`、`<tr>`、`<th>` 和 `<td>` 标签来定义一个简单的表格,并使用 FreeMarker 模板语言来动态生成表格中的行和列:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Person List</title>
</head>
<body>
<h1>Person List</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
</thead>
<tbody>
<#list persons as person>
<tr>
<td>${person.name}</td>
<td>${person.age}</td>
<td>${person.gender}</td>
</tr>
</#list>
</tbody>
</table>
</body>
</html>
```
在模板文件中,您可以看到 `<#list>` 语句用于遍历 Person 对象列表,`${}` 语句用于获取对象的属性值,并将其插入到表格中的对应单元格中。
最后,您需要编写一个控制器类,将模板和数据模型合并,生成完整的 HTML 页面并返回给客户端。例如,下面的控制器类使用 FreeMarker 的 `Template` 类和 `Configuration` 类来实现这一点:
```java
@Controller
public class PersonController {
@Autowired
private Configuration configuration;
@GetMapping("/persons")
public String getPersonList(Model model) throws Exception {
List<Person> persons = getPersonListFromDB();
model.addAttribute("persons", persons);
Template template = configuration.getTemplate("person_list.ftl");
return FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
}
private List<Person> getPersonListFromDB() {
// 从数据库中获取 Person 对象列表
}
}
```
在上面的示例中,`getPersonList()` 方法返回一个字符串,该字符串表示从模板和数据模型中生成的 HTML 表格页面。`getPersonListFromDB()` 方法从数据库中获取 Person 对象列表,并将其添加到模型中,以便在模板中使用。
这是一个简单的示例,可以根据需要进行扩展和修改。
### 回答2:
在Spring Boot中使用Freemarker动态生成HTML表格的示例,主要分为以下几个步骤:
1. 配置Spring Boot项目依赖:
在pom.xml文件中添加以下依赖:
```xml
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Freemarker -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
```
2. 创建Freemarker模板文件:
在resources/templates目录下创建一个名为template.ftl的Freemarker模板文件,内容如下所示:
```html
<html>
<head>
<title>动态生成HTML表格示例</title>
</head>
<body>
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<#list users as user>
<tr>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</#list>
</table>
</body>
</html>
```
3. 创建Controller类:
```java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.ArrayList;
import java.util.List;
@Controller
public class ExampleController {
@GetMapping("/example")
public String example(Model model) {
List<User> users = new ArrayList<>();
users.add(new User("张三", 18));
users.add(new User("李四", 20));
users.add(new User("王五", 22));
model.addAttribute("users", users);
return "template";
}
static class User {
private String name;
private int age;
// 省略构造函数、getter和setter方法
}
}
```
4. 启动Spring Boot项目:
在启动类中添加`@EnableWebMvc`注解(用于启用Spring MVC),然后运行项目。
5. 访问生成的HTML表格:
在浏览器中访问`http://localhost:8080/example`,即可看到动态生成的HTML表格。
以上就是使用Freemarker动态生成HTML表格的示例,通过在模板中使用Freemarker的标签语法,可以方便地插入动态数据生成对应的HTML代码。
### 回答3:
Java中使用Spring Boot和Freemarker动态生成HTML表格的示例代码如下:
首先,需要在pom.xml中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
```
然后,创建一个Controller类,例如:
```java
@Controller
public class TableController {
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@GetMapping("/table")
public ModelAndView table() {
Map<String, Object> model = new HashMap<>();
List<String> headers = new ArrayList<>();
headers.add("姓名");
headers.add("年龄");
headers.add("性别");
model.put("headers", headers);
List<Map<String, String>> data = new ArrayList<>();
Map<String, String> row1 = new HashMap<>();
row1.put("姓名", "张三");
row1.put("年龄", "18");
row1.put("性别", "男");
data.add(row1);
Map<String, String> row2 = new HashMap<>();
row2.put("姓名", "李四");
row2.put("年龄", "20");
row2.put("性别", "女");
data.add(row2);
model.put("data", data);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("table");
modelAndView.addAllObjects(model);
return modelAndView;
}
}
```
然后,创建一个freemarker模板文件table.ftl,内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>动态生成表格</title>
</head>
<body>
<table>
<thead>
<tr>
<#list headers as header>
<th>${header}</th>
</#list>
</tr>
</thead>
<tbody>
<#list data as row>
<tr>
<#list row?keys as key>
<td>${row[key]}</td>
</#list>
</tr>
</#list>
</tbody>
</table>
</body>
</html>
```
最后,启动Spring Boot应用并访问http://localhost:8080/table,将会看到生成的动态表格。
阅读全文