美文网首页
Spring Boot(五)整合视图层技术_freemarker

Spring Boot(五)整合视图层技术_freemarker

作者: honest涛 | 来源:发表于2020-08-07 01:29 被阅读0次

作者:毕涛涛,致力于Java学习的践行者。原创文章,转载请注明出处。

整合freemarker

整合freemarker要求必须将视图文件放在 src/main/resources下的templates文件夹下,该文件夹是安全的不可直接访问的,必须由controller之类的接受请求类去跳转,因为如果直接访问就意味着需要及时响应,而springboot需要给展示文件去渲染,这需要时间,所以他是不允许被直接访问的。
1.项目目录结构

项目目录结构.png
2.向pom文件中添加坐标
        <!-- freemarker启动器的坐标 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

3.创建 Controller

package com.deewinkg.controller;

import com.deewinkg.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

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

@Controller
public class UserController
{
    /**
     * 处理请求,产生数据。
     * @param model
     * @return
     */
    @RequestMapping("/showUser")
    public String showUser(Model model)
    {
        List<User> userList = new ArrayList<>();
        userList.add(new User("1","刘备",50));
        userList.add(new User("2","关羽",48));
        userList.add(new User("3","张飞",45));
        // 需要一个Model对象
        model.addAttribute("list",userList);
        // 跳转视图
        return "userList";
    }
}
package com.deewinkg.pojo;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
@AllArgsConstructor
@Setter
@Getter
public class User implements Serializable
{
    private String id;
    private String name;
    private int age;
}

4.创建userList.ftl
** 此文件名字叫userList因为controller中showUser方法返回的名字叫userList,里面的EL表达式中的list是controller类中的model对象的addAttribute方法的key,参数名为list.**

<html>
<head>
    <title>展示用户数据</title>
    <meta charset="utf-9"></meta>
</head>

<body>

<table border="1" align="center" width="50%">
    <tr>

        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <#list list as user >
        <tr>
            <td>${user.id}</td>
            <td>${user.name}</td>
            <td>${user.age}</td>
        </tr>
    </#list>
</table>
</body>
</html>
5.运行结果 运行结果.png

相关文章

网友评论

      本文标题:Spring Boot(五)整合视图层技术_freemarker

      本文链接:https://www.haomeiwen.com/subject/dxazrktx.html