thymeleaf做一个简单的表单

前期环境

做一个信息提交和图片上传的表单。

主要技术:

  1. mysql 数据库
    2.springboot 框架
    3.前台 thymeleaf模板
    4.数据库连接 spring jpa

载入controller层

    @RequestMapping("/dictoryChange")public String  dicitoryChange(Model model){List<CatalogDto> list = iDictoryService.getDictoryList();DictoryDto d = new DictoryDto();d.setName("aa");model.addAttribute("dictory", d);model.addAttribute("list", list);return "dictoryChange";}

跳转一个页面,并传递一个DictoryDto 的对象作为名为dictory的对象传递过去,和一个用来做列表的list对象传递到前端thymeleaf模板中。

thymeleaf模板

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>目录登录</title>
</head>
<body>
<form method="post" th:action="@{/dictoryUpdate}" th:method="post" th:object="${dictory}" enctype="multipart/form-data"><p class="login_info">目录登录</p>父级目录:<select><option th:value="${em}"></option></select><br>目录名称:<input class="login_textbox" type="text" name="name" th:field="*{name}">目录图片:<input type="file" name="file00">备   注:<input class="login_textbox" type="text" name="mark" th:field="*{mark}"><button class="login_btn" type="submit">目录登录</button>
</form>
</body>
</html>

模板对应的使用th:object来介绍对应的对象,这个对象也会对应的提交上去,th:field=“*{name}” 使用th:field来绑定对应的对象的属性,使用*{}*来获取对应的属性值。文件是作为单独的属性去设置的<input type=“file” name=“file00”> 会将提交的文件对象放在file00提交上去。

接收的controller

th:action=“@{/dictoryUpdate}” 指向对应的控制层的url

    @RequestMapping(value = "/dictoryUpdate",method = RequestMethod.POST)public String  dictoryUpdate(@RequestParam("file00") MultipartFile file, @ModelAttribute Dictory dictory,Model model) throws IOException {if(!file.isEmpty()){//获得文件原始名称String originalFilename = file.getOriginalFilename();file.transferTo(new File("F:\\myweb\\img\\"+originalFilename));dictory.setImg(originalFilename);}model.addAttribute("msg","更新成功1");iDictoryService.updateDictory(dictory);return "success";}

这里居然能接收这么多的参数我也是想不到的

  1. @RequestParam(“file00”) MultipartFile file 接收文件
  2. @ModelAttribute Dictory dictory 接收对应的对象值

最后调用jpa下的sava保存对象值就可以了。还有需要在application.yml中配置对应的属性值:

server:port: 8080
spring:thymeleaf:cache: falsemode: HTML5suffix: .htmlencoding: UTF-8jpa:properties:hibernate:hbm2ddl:auto: updatedialect: org.hibernate.dialect.MySQL5InnoDBDialectformat_sql: trueenable_lazy_load_no_trans: trueshow-sql: truedatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://自己的数据库ip地址:3306/testusername: rootpassword: w25UKsFgl(C+hikari:# 连接池最大连接数,默认是 10maximum-pool-size: 60# 链接超时时间,默认 30000(30 秒)connection-timeout: 60000# 空闲连接存活最大时间,默认 600000(10 分钟)idle-timeout: 60000# 连接将被测试活动的最大时间量validation-timeout: 3000# 此属性控制池中连接的最长生命周期,值 0 表示无限生命周期,默认 1800000(30 分钟)max-lifetime: 60000# 连接到数据库时等待的最长时间(秒)login-timeout: 5# 池中维护的最小空闲连接数minimum-idle: 10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/30849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot中创建拦截器

目录 目的 实现过程 1、创建拦截器 2、注册拦截器 完整代码 目的 在Springboot项目中创建拦截器&#xff0c;在进入Controller层之前拦截请求&#xff0c;可对拦截到的请求内容做响应处理&#xff0c;如&#xff1a;校验请求参数、验证证书等操作&#xff1b; 实现过程 1、创…

vivado tcl创建工程和Git管理

一、Tcl工程创建 二、Git版本管理 对于创建完成的工程需要Git备份时&#xff0c;不需要上传完整几百或上G的工程&#xff0c;使用tcl指令创建脚本&#xff0c;并只将Tcl脚本上传&#xff0c;克隆时&#xff0c;只需要克隆tcl脚本&#xff0c;使用vivado导入新建工程即可。 优…

如何获取vivado IP列表

TCL命令如下&#xff1a; set fid [open "vivado_included_ip_[version -short].csv" w] puts $fid "Name;Version" set ip_catalog [get_ipdefs *] foreach ip $ip_catalog{ set ipname [get_property DISPLAY_NAME [get_ipdefs $ip]]set iplib [get_p…

Java基础篇--基本数据类型

目录 前言&#xff1a; 内置数据类型 类型默认值 示例: 内置数据类型转换 自动类型转换&#xff08;隐式类型转换&#xff09;&#xff1a; 强制类型转换&#xff08;显式类型转换&#xff09;&#xff1a; 隐含强制类型转换&#xff1a; 引用类型 前言&#xff1a; …

7个最先进的3D模型生成式AI大模型【AIGC】

AI正在不同的行业中出现&#xff0c;我们对 3D 资产生成的前景感到兴奋。 对于游戏开发商和工作室来说&#xff0c;3D 资产通常是开发过程中最棘手的部分之一&#xff0c;容易出现瓶颈。 生产一个模型的成本从 60 美元到 1500 美元不等&#xff0c;需要 2 到 10 周的时间来回制…

禁止输入空格和汉字,以及纯符号

1.禁止输入空格和汉字,以及纯符号 2、可以输入纯数字、纯字母、字母数字的组合、字母符号的组合、符号数字的组合、符号字母数字的组合 <el-form-item :prop"tableData.${$index}.strbatchcode" :rules"!!row.blnbatch ? rules.strbatchcode :rules.strbat…

多个配置WebMvcConfigurationSupport失效问题

最近在项目中用类继承WebMvcConfigurationSupport实现拦截器 Configuration RequiredArgsConstructor public class SpringWebSupport extends WebMvcConfigurationSupport {private final ProjectInterceptor projectInterceptor;// 拦截器 //设置拦截器对象和拦截请求Ove…

tomcat p12证书另存为nginx .crt证书和.key私钥

tomcat p12证书另存为nginx .crt证书和.key私钥 Tomcat使用的.pfx或.keystore文件都是私钥及公钥证书一起的&#xff0c;通过pin保证安全&#xff1b;nginx只需要使用.pem或.crt公钥证书文件和.key私钥即可&#xff0c;如果原ssl证书不方便重新下载&#xff0c;在已有tomcat证…

Vue3 + Ts + Vite 封装一套企业级axiso全流程

前期回顾 从零搭建 Vue3 VIte Ts 项目 —— 并集成eslint 、prettier、stylelint、husky、lint-staged、pinia、axios、loding、动态路由…_彩色之外的博客-CSDN博客 实现功能&#xff1a; 取消重复请求&#xff1a;完全相同的接口在上一个pending状态时&#xff0c;自动取…

企业服务器被devos勒索病毒攻击后怎么处理,devos勒索病毒如何攻击的

众所周知&#xff0c;科学技术是第一生产力&#xff0c;科学技术的发展给企业与人们的生活带来了极大变化&#xff0c;但随之而来的网络安全威胁也不断增加。最近&#xff0c;我们收到很多企业的求助&#xff0c;企业的计算机服务器遭到了devos勒索病毒的攻击&#xff0c;导致企…

Python中的__code__属性

在Python中&#xff0c;每个函数都有一个__code__属性。这个属性是一个引用到代码对象&#xff0c;它包含了与该函数相关的Python字节码及其他相关信息。代码对象在Python中是用来存储可执行代码的基本单元&#xff0c;它们包含了字节码、常量、变量名等相关的数据。 以下是与…

oracle积累增量和差异增量

积累增量和差异增量&#xff1a; 对于 RMAN 来说&#xff0c;积累增量备份和差异增量备份都是增量备份的一种形式&#xff0c;它们之间的区别在于备份的范围和备份集的方式。 积累增量备份&#xff1a;在进行积累增量备份时&#xff0c;RMAN 会备份自最后一次完全备份或增量备…

NGINX——负载均衡

负载均衡————>通过反向代理来实现 nginx反向代理的七层代理和四层代理 七层代理&#xff1a; 七层代理时最常用的反向代理方式&#xff0c;其只能配置在nginx的配置文件的http模块中&#xff0c;而且方法名称必须要定义成“upstream”模块&#xff0c;注意不能写在se…

使用Druid,以jdbc方式配置多数据源

文章目录 背景示例代码&#xff08;结合实际进行配置&#xff09;总结 背景 当使用Spring Boot项目并需要多数据源时&#xff0c;你可以使用Druid连接池来配置和管理多个数据源。以下是一个示例的配置和代码&#xff0c;以说明如何实现多数据源&#xff1a; 示例代码&#xf…

【Mybatis】调试查看执行的 SQL 语句

1. 问题场景&#xff1a; 记录日常开发过程中 Mybatis 调试 SQL 语句&#xff0c;想要查看Mybatis 中执行的 SQL语句&#xff0c;导致定位问题困难 2. 解决方式 双击shift找到mybatis源码中的 MappedStatement的getBoundSql()方法 public BoundSql getBoundSql(Object para…

selenium爬虫,配置谷歌浏览器的driver

用selenium爬虫时&#xff0c;明明已经安装了selenium模块&#xff0c;程序却运行不了。在使用selenium之前必须先配置浏览器对应版本的webdriver 本文主要涉及驱动有问题driver 网上有很多手动的方法&#xff08;查看谷歌浏览的版本然后在其他博主分享的webdriver中下载与自己…

Mybatis Plus条件构造器LambdaQueryWrapper

官网地址 Mybatis Plus条件构造器LambdaQueryWrapper 目前数据库数据情况&#xff0c;User表 iduser_namebirthdaysexaddress1张12023-08-10男123163.com2李12023-08-10女222163.com3张22023-08-10女999163.com4张32023-08-10男9994qq.com ## 简单介绍 如何使用各种场景 方法…

论文笔记:SUPERVISED CONTRASTIVE REGRESSION

2022arxiv的论文&#xff0c;没有中&#xff0c;但一作是P大图班本MIT博&#xff0c;可信度应该还是可以的 0 摘要 深度回归模型通常以端到端的方式进行学习&#xff0c;不明确尝试学习具有回归意识的表示。 它们的表示往往是分散的&#xff0c;未能捕捉回归任务的连续性质。…

gateway做token校验

本文使用springcloud的gateway做token校验 登录的本质&#xff1a;拿用户名和密码 换 token。 token会返回给浏览器&#xff08;存储&#xff09;&#xff0c;当访问的时候&#xff0c;携带token 发起请求。 token校验图 引入redis依赖 <dependency><groupId>or…

2000-2022年全国地级市乡村振兴测算数据(30个指标)

1、时间&#xff1a;2000-2022年 2、来源&#xff1a;城市统计NJ、各地区统计NJ 3、范围&#xff1a;地级市 4、指标&#xff1a;乡村振兴指数、人均农业机械总动力&#xff08;千瓦&#xff09;、粮食综合生产能力&#xff08;万吨&#xff09;、农业劳动生产率&#xff08…