layui附件上传组件,实现layui附件上传组件抽取并改造,基于thymeleaf组件化

本文介绍如何基于layui的附件上传功能进行抽取和改造,将其转化为一个可复用的组件化附件上传工具,该工具类为UploadUtils,采用Thymeleaf进行组件化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于项目用到了layui的组件上传功能所以对layui的附件上传功能做了抽取

Title
添加附件
文件名 大小 状态 操作
        <input  name="fileName" th:id="${attachContainerID}+'_attachUUIDS'" th:value="${proposalGuId}" class="layui-input layui-hide">

            <script>
                function f_[[${attachContainerID}]](upload) {
                    var JQUERY = layui.jquery;

                    //多文件列表示例
                    var demoListView = JQUERY('#[[${attachContainerID}]]');
                    upload.render({
                        elem: '#[[${attachContainerID}]]_testList'
                        , url: '../attachment/upload'
                        , accept: 'file'
                        , multiple: true
                        , auto: true
                        , size: 1024*6
                        , before: function () {
                            //debugger;

                        }
                        , choose: function (obj) {
                            var   files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
                            //读取本地文件
                            //debugger;
                            obj.preview(function (index, file, result) {
                              console.log(result);
                                var tr = JQUERY(['<tr id="upload-' + index + '" class="[[${attachContainerID}]]_item">'
                                    , '<td>' + file.name + '</td>'
                                    , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
                                    , '<td>等待上传</td>'
                                    , '<td>'
                                    , '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
     
### 集成 LayuiThymeleaf 的方法 #### 使用 Maven 或 Gradle 添加依赖项 为了使项目能够顺利使用 LayuiThymeleaf,首先需要确保项目的构建文件中包含了这两个库的相关依赖。 对于基于Maven的项目,在`pom.xml` 文件内加入以下内容: ```xml <dependencies> <!-- Thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- LayUI (通过WebJars引入) --> <dependency> <groupId>com.github.universal-dependencies</groupId> <artifactId>layui-webjar</artifactId> <version>2.7.0</version> </dependency> </dependencies> ``` #### 创建控制器来渲染视图模板 创建一个新的Controller类用于处理HTTP请求将数据传递给前端页面。这里展示了一个简单的例子: ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class IndexController { @GetMapping("/") public String index(Model model){ // 可以向model添加属性供Thymeleaf访问 model.addAttribute("title", "欢迎来到首页"); return "index"; } } ``` #### 编写HTML页面应用Layui样式和脚本 在 `src/main/resources/templates/` 下新建名为 `index.html` 的文件,按照下面的方式编写代码: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title th:text="${title}">默认标题</title> <!-- 引入Layui CSS --> <link rel="stylesheet" href="/webjars/layui/css/layui.css"/> <!-- 如果有额外自定义CSS也可以在此处链接 --> </head> <body> <div id="content"> <!-- 这里放置具体的网页结构 --> </div> <!-- 引入jQuery和其他必要的JavaScript库 --> <script src="/webjars/jquery/jquery.min.js"></script> <!-- 引入Layui JS --> <script src="/webjars/layui/layui.all.js"></script> <!-- 初始化Layui组件或其他JS逻辑可以放在这个标签内部 --> <script type="text/javascript"> layui.use(['element', 'form'], function(){ var element = layui.element, form = layui.form; // 执行一些初始化操作... }); </script> </body> </html> ``` 上述过程展示了如何在一个Spring Boot应用程序中集成LayuiThymeleaf[^1]。这样做不仅可以让开发者利用到强大的前后端分离框架特性,同时也享受到了丰富的前端UI组件带来的便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值