【Thymeleaf/SpringBoot/MyBatis】如何将themeleaf页面的表单数据提交到后台处理
本文例程下载:https://files.cnblogs.com/files/heyang78/myBank_themeleaf_post_addstu_210906.rar
第一步:准备含有form的页面。
...... <table border="0px" width="160px"> <tbody> <form action="addStu" method="post"> <tr> <td>id<input type="text" name="id"/></td> <td>name<input type="text" name="name"/></td> </tr> <tr> <td><input type="submit" value="提交"/></td> </tr> </form> </tbody> </table> ......
以上代码中,form的action指向RequestMapping里的value,method则和RequestMapping里的method对应,文本框name和id都会变成函数参数的一部分。
第二步:在控制器类中准备处理的函数
@Controller public class ActionController { @Autowired private StudentMapper studentMapper; ...... @RequestMapping(value="/addStu", method=RequestMethod.POST) public String addStu(@ModelAttribute(value="id") String id,@ModelAttribute(value="name") String name) { System.out.println("id="+id); System.out.println("name="+name); int nid=Integer.parseInt(id); studentMapper.addStudent(nid, name); return "list"; } }
可以拿addStu函数的注解中两个值和页面form里的两个值对照,看是否一致,还可以拿addStu函数的参数两个值和页面两文本框的name比较,看是否一致。比较一番后就会写了。
第三步:书写往数据库插值的函数:
@Mapper public interface StudentMapper { ...... @Insert("insert into student(id,name) values(#{id},#{name})") int addStudent(@Param("id") int id,@Param("name") String name); }
这个没啥好说的,就是告诉系统掉这个函数时执行注解里的SQL语句。
之后就可以启动页面,输入数据,再到后台看输入的结果了。
提交前页面值:
提交后数据库值:
可以看见,页面数据如所料存入了DB。
--END--