【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--

原文地址:https://www.cnblogs.com/heyang78/p/15233675.html