为什么在springboot中使用thymeleaf无法实现网络请求

问题原因

    • 错误代码
    • 正确代码

在作业中发现了一个问题,开始一直以为是前端的form表单提交错误导致请求无法发出。后来发现原来是因为我直接访问的是html静态网页,而不是使用转发请求来访问这个网页。我这里使用的是mybatis-plus实现数据库方面的操作

错误代码

在登录页面中用户若是没有账号则给定一个超链接跳转到register.html页面。

login.html页面

<h2 style="margin-left: 50px">欢迎登录h2>
<form th:action="@{/user/login}" method="post" style="margin: 0 50px">
    用户名:<input name="username"><br>
    密码:<input name="password"><br>
    <input type="submit" value="提交">
form>
<span style="margin-left: 50px"><a href="https://localhost:9090/springboot/register.html">删除用户a>span>

register.html页面

<h2 style="margin-left: 50px">期待成为我们的一员h2>
<form th:action="@{/user/register}" method="post" style="margin: 0 50px">
  用户名:<input name="username"><br>
  密码:<input name="password"><br>
  <input type="submit" value="注册">
form>

controller层代码

//最外层是/user

   @RequestMapping("/register")
    public String userRegister(){
    //然后在这里疯狂打断点都进不来。当时就在想是不是前端form表单的提交地址错了。
    //最后才知道不是,thymeleaf静态页面无法直接请求接口,必须得转发
//        System.out.println("***************"+user);
//        iUserService.getBaseMapper().insert(user);
       return "register.html";
    }

正确代码

其实就是将login页面那个超链接改成了一个请求,将页面重定向到register.html页面就可以了。
login.html页面

<h2 style="margin-left: 50px">欢迎登录h2>
<form th:action="@{/user/login}" method="post" style="margin: 0 50px">
    用户名:<input name="username"><br>
    密码:<input name="password"><br>
    <input type="submit" value="提交">
form>
<span style="margin-left: 50px"><a href="https://localhost:9090/springboot/user/register">删除用户a>span>
//注意看我这个超链接不是直接跳转到了register.html页面,而是转发了一个请求。
body>

register.html页面

<h2 style="margin-left: 50px">期待成为我们的一员h2>
//注意这个表单的提交地址
<form th:action="@{/user/registercommit}" method="post" style="margin: 0 50px">
  用户名:<input name="username"><br>
  密码:<input name="password"><br>
  <input type="submit" value="注册">
form>

controller层代码

//首先进入这个请求
  @RequestMapping("/register")
    public String userRegister(){
//        System.out.println("***************"+user);
//        iUserService.getBaseMapper().insert(user);
//直接重定向到register.html
       return "register.html";
    }
//表单的提交地址
    @RequestMapping("registercommit")
    public String registercommit(User user){
        System.out.println("))))))************");
       int res= iUserService.getBaseMapper().insert(user);
       if (res>0){
           return "redirect:/login";
       }
        return "error.html";
    }

你可能感兴趣的:(bug之百改成神,spring,boot,java,后端)