springboot整合layui + Freemarker

一、新建Springboot工程

配置POM

  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.1.7.RELEASE</version>
            <scope>compile</scope>
        </dependency>
         <dependency>
           <groupId>net.sourceforge.nekohtml</groupId>
             <artifactId>nekohtml</artifactId>
         </dependency>
    </dependencies>

二、将layui解压在static文件夹下

三、配置application.yml

server:
  port: 8881
  spring:
    application:
      name: freemarker-demo
    freemarker:
      #指定HttpServletRequest的属性是否可以覆盖controller的model的同名项
      allow-request-override: true
      #req访问request
      request-context-attribute: req
      #后缀名freemarker默认后缀为.ftl,当然你也可以改成自己习惯的.html
      suffix: .ftl
      #设置响应的内容类型
      content-type: text/html;charset=utf-8
      #是否允许mvc使用freemarker1
     # enabled: true
      #是否开启template caching
      cache: false
      #设定模板的加载路径,多个以逗号分隔,默认: [“classpath:/templates/”]
      template-loader-path: classpath:/templates
      #设定Template的编码
      charset: UTF-8

四、配置拦截器访问静态资源

package com.hu.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    //静态资源放行
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .addResourceLocations("classpath:/templates/");
        super.addResourceHandlers(registry);
    }
}

五、在templates下新建center.ftlh ,index.ftlh

<html lang="zh-CN">
<head>
    <meta charset="UTF-8"/>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="./layuiAdmin/layui/css/layui.css"/>
    <script src="./layuiAdmin/layui/layui.js" type="text/javascript" charset="utf-8"></script>
    <title>${title}</title>
</head>
<body>
<table class="layui-table" lay-even lay-skin="line" lay-size="lg">
    <colgroup>
        <!-- 第一列宽 150px 第二列宽300px 第三列宽自适应100% -->
        <col width="150">
        <col width="300">
        <col>
    </colgroup>
    <!-- thead 标签表示表格的头部区域,其内部必须拥有 tr 标签, tr标签一般位于第一行 -->
    <thead>
    <!-- tr用于定义表格中的行,必须嵌套在 table 中 -->
    <tr>
        <!-- th 用于定义表格中的表头,必须嵌套在 tr 中 -->
        <th>Name</th>
        <th>Age</th>
        <th>Phone</th>
    </tr>
    </thead>
    <tbody>
            <#list students as student>
                <tr>
                    <td>${student.name}</td>
                    <td>${student.age}</td>
                    <td>${student.phone}</td>
                </tr>
            </#list>
    </tbody>
</table>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>${title}</title>
    <link rel="stylesheet" type="text/css" href="./layuiAdmin/layui/css/layui.css"/>
    <script src="./layuiAdmin/layui/layui.js" type="text/javascript" charset="utf-8"></script>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">layui 后台布局</div>
        <!-- 头部区域(可配合layui已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item"><a href="">控制台</a></li>
            <li class="layui-nav-item"><a href="">商品管理</a></li>
            <li class="layui-nav-item"><a href="">用户</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">其它系统</a>
                <dl class="layui-nav-child">
                    <dd><a href="">邮件管理</a></dd>
                    <dd><a href="">消息管理</a></dd>
                    <dd><a href="">授权管理</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                <a href="javascript:;">
                    <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                    贤心
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">基本资料</a></dd>
                    <dd><a href="">安全设置</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item"><a href="">退了</a></li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree"  lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">所有商品</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="javascript:;">列表三</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">解决方案</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="">云市场</a></li>
                <li class="layui-nav-item"><a href="">发布商品</a></li>
            </ul>
        </div>
    </div>

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div style="padding: 15px;">内容主体区域</div>
    </div>

    <div class="layui-footer">
        <!-- 底部固定区域 -->
        © layui.com - 底部固定区域
    </div>
</div>
<script>
    //JavaScript代码区域
    layui.use('element', function(){
        var element = layui.element;

    });
</script>
</body>
</html>

六、配置控制器

package com.hu.controller;

import com.hu.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CenterStudentController {
    @Autowired
    private StudentService studentService;
    @RequestMapping("/center")
    public String  center(ModelMap map){
        map.put("title","用户列表");
        map.put("students",studentService.createStudent());
        return "center";
    }
}

 

七、访问

输入:http://127.0.0.1:8881/center

结果如图:

输入:http://127.0.0.1:8881/index 

猜你喜欢

转载自blog.csdn.net/qq_44625745/article/details/128869940