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: false
    mode: HTML5
    suffix: .html
    encoding: UTF-8
  jpa:
    properties:
      hibernate:
        hbm2ddl:
          auto: update
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
        format_sql: true
        enable_lazy_load_no_trans: true
    show-sql: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://自己的数据库ip地址:3306/test
    username: root
    password: w25UKsFgl(C+
    hikari:
      # 连接池最大连接数,默认是 10
      maximum-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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的天才女友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值