springboot使用freemarker生成静态html页面,并且让前端访问
时间: 2023-11-11 22:09:34 浏览: 247
基于SpringBoot+FreeMarker+MyBatis+ExtJs的一个通用后台管理系统源码(适合快速迭代开发).zip
可以使用 Spring Boot 中的 Freemarker 模板引擎来生成静态 HTML 页面,然后让前端通过 HTTP 请求访问这些页面。
下面是一个简单的示例:
1. 在 Spring Boot 项目中添加 Freemarker 依赖,比如:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
```
2. 在 application.properties 文件中配置 Freemarker 相关属性,比如:
```
# 模板文件所在目录
spring.freemarker.template-loader-path=classpath:/templates/
# 静态文件生成目录
spring.freemarker.static-file-location=file:/path/to/static/files/
```
3. 创建一个 Freemarker 模板文件,比如 `/templates/index.ftl`:
```
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Hello, ${name}!</h1>
</body>
</html>
```
4. 创建一个 Spring Controller 类,生成静态 HTML 页面:
```
@Controller
public class MyController {
@Autowired
private Configuration freemarkerConfig;
@GetMapping("/generate")
public void generateHtml(@RequestParam("name") String name, HttpServletResponse response) throws Exception {
Template template = freemarkerConfig.getTemplate("index.ftl");
Map<String, Object> model = new HashMap<>();
model.put("name", name);
StringWriter stringWriter = new StringWriter();
template.process(model, stringWriter);
String html = stringWriter.toString();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(html);
response.getWriter().flush();
response.getWriter().close();
}
}
```
5. 启动 Spring Boot 应用,访问 `http://localhost:8080/generate?name=World`,即可生成静态 HTML 页面,并在浏览器中显示。
注意:在实际生产环境中,你需要将生成的静态 HTML 页面放到一个静态文件目录中(比如 `/path/to/static/files/`),然后让前端通过 HTTP 请求访问这些页面。
阅读全文