3.2 springboot整合Freemarker

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16855077/article/details/84940256

1.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.cloudtech</groupId>
	<artifactId>01-springboot-hello</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
		<relativePath />
		<!-- lookup parent from repository -->
	</parent>
	
	<properties>
	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
		<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>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		
		<!-- jsp解析器 -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>

2.controller类

package com.cloudtech.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.cloudtech.entity.User;

/**
 * 测试springboot集成jsp
* @ClassName: TestController  
* @Description:   
* @author wude  
* @date 2018年12月7日  
*
 */
@Controller
public class TestController {
	@RequestMapping("/showList")
	public String  showList(Model model){
		List<User> users = new ArrayList<>();
		User user = new User();
		user.setUserName("张三");
		user.setSex("男");
		
		User user1 = new User();
		user1.setUserName("李四");
		user1.setSex("女");
		
		users.add(user);
		users.add(user1);
		
		model.addAttribute("list", users);
		return "user";
	}
}

3.application.yml

server:
  port: 8082

4.前端代码

注意:一定要在resources下新创建templates(名称一定要对,不然无法访问)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <table>
	<tr>
		<td>姓名</td>
		<td>性别</td>
	</tr>
	
	<#list list as user>
		<tr>
			<td>${user.userName}</td>
			<td>${user.sex}</td>
		</tr>
	</#list>
  </table>
</body>
</html>

建议通过sublime编写代码,再到eclipse中刷新,eclipse中ftl格式

5.启动类

package com.cloudtech;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;


@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
}

6.测试

7 疑问点

测试访问成功后,不知道大家有没有遇到一个疑问。

明明后台配置的时候,写的是user,而页面的名称是user.ftl,他竟然可以访问到,有这种疑问的朋友,扣1

这是因为sping boot底层帮我们做了很多的事,为了简化配置,spring boot启动的时候会有一些初始化的配置如redis、hibernate等等

猜你喜欢

转载自blog.csdn.net/qq_16855077/article/details/84940256
3.2