练习数据校验时为何写了PostMapping 运行时却显示 不支持 post

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

controller

    @GetMapping(value = "/add")
    public String add(Model model){
        model.addAttribute("complain",new Complain());
        return "user/complainapply";
    }

    @PostMapping("/add/{id}")
    public String add(@Valid Complain complain, @Valid int id, BindingResult bindingResult){
        User user = adminService.findUserById(id);
        complain.setUser(user);
        complainService.add(complain);
        if (bindingResult.hasErrors()){
            return "user/complainapply";
        }
        return "user/showcomplain";
    }

前端页面
<form:form modelAttribute="complain" action="/complain/add?id=${sessionScope.user.id}">

        <table>
            <tr>
                <td>投诉原因</td>
                <td><form:input path="complain_content"/><form:errors path="complain_content"></form:errors>
                </td>
            </tr>
            <tr>
                <td>创建时间</td>
                <td><form:input path="creat_time"/><form:errors path="creat_time"></form:errors>
                </td>
            </tr>
            <tr>
                <td>投诉人</td>
                <td><input name="name" type="text" value="${sessionScope.user.name}"}>
                </td>
            </tr>
            <tr>
                <td>联系电话</td>
                <td><input name="phone" type="text" value="${sessionScope.user.phone}">
                </td>
            </tr>
        </table>

        <div class="buttons">
            <input value="投 诉" type="submit" style="margin-right:20px; margin-top:20px;">
        </div>

        <br class="clear">
    </form:form>
运行结果及报错内容

img

我想要达到的结果

<form:form modelAttribute="complain" action="/complain/add?id=${sessionScope.user.id}">
改成
<form:form modelAttribute="complain" action="/complain/add/${sessionScope.user.id}">
post接口的id是url的一部分,不是url参数

首先你既然使用post方式传值,但是你的action中写的确实get方式的请求,其次,浏览器页面不支持直接对post路径进行访问,可以通过postman测试,第三,测试时尽量debug模式,看看方法是否进入以及参数是否正确

因为你页面提交的参数是一个model,匹配的是controller里面Get那个方法,所以返回405

如有帮助,请采纳!