关于SpringBoot里面重定向出现"Request method ‘GET’ not supported"的问题
今天遇到一个很有意思的问题,我相信有许多小伙伴跟我一样遇到了,话不多说开整
关于登录失败重定向的问题
和
过程:
这是我准备的Controller,当我访问根目录自己就转到 login.html,端口为8082
@GetMapping("/")
public String ToLogger(){
return "login";
}
@PostMapping("/login")
public String login(String flag) {
if(flag.equals("false")) {
return "redirect:/login";
}
return null;
}
为了测试方便我直接演示登录失败的结果:
<form action="/login" style="margin-left: 100px " method="post" >
<div>
flag: <input type="text" name="flag">
<input type="submit" value="登录">
</div>
</form>
<p th:text= "${message}"></p>
开始访问localhost:8082,一切正常…
输入约定好的 false,请求开始,出错
和
分析原因:
redirect 重定向为GET请求,与POST请求不匹配…那怎么解决呢???再深入分析…
解决方案:
加入一个一模一样的请求路径
测试是否成功:
提交参数为false,成功
再刷新页面,没有message残留
总结:
核心问题就是要有相同的GET和POST请求路径存在方可循环,实现需求…
SpringBoot直接return “字符串”,是得到静态视图,加了redirect等指向词的,会跑到controller里面去找GET类型的url