当前位置: 首页 > 知识库问答 >
问题:

不支持请求方法“POST” - SPRING

翟源
2023-03-14

login.jsp

<div id="login" class="animate form">
                    <form action="${loginUrl}" method="POST">
                        <h1>Log in</h1>

                        <c:url var="loginUrl" value="/login" />
                        <c:if test="${param.error != null}">
                            <input type="text" class="alert-danger" id="danger" name="danger"
                                placeholder="Invalid username and password." disabled />
                            <br />
                        </c:if>
                        <c:if test="${param.logout != null}">
                            <input type="text" class="alert-success" id="success"
                                name="success"
                                placeholder="You have been logged out successfully." disabled />
                            <br />
                        </c:if>


                        <p>
                            <label for="username" class="uname" data-icon="u"> Your
                                email </label> <input id="username" name="login" required="required"
                                type="text" placeholder="mymail@atos.net" />
                        </p>
                        <p>
                            <label for="password" class="youpasswd" data-icon="p">
                                Your password </label> <input id="password" name="password"
                                required="required" type="password" placeholder="eg. X8df!90EO" />
                        </p>
                        <p class="keeplogin">
                            <input type="checkbox" name="remember-me" id="rememberme"
                                value="rememberme" /> <label for="rememberme">Remember
                                Me</label>
                        </p>
                        <p class="login button">
                            <input type="submit" value="Login" />
                        </p>
                        <p class="change_link"></p>
                    </form>
                </div>

用户列表.jsp

<div class="generic-container">
        <%@include file="authheader.jsp" %>   
        <div class="panel panel-default">
              <!-- Default panel contents -->
            <div class="panel-heading"><span class="lead">List of Users </span></div>
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th>Prenom</th>
                        <th>Nom</th>
                        <th>Matricule</th>
                        <th>Login</th>
                        <sec:authorize access="hasRole('ADMIN') or hasRole('READ')">
                            <th width="100"></th>
                        </sec:authorize>
                        <sec:authorize access="hasRole('ADMIN')">
                            <th width="100"></th>
                        </sec:authorize>

                    </tr>
                </thead>
                <tbody>
                <c:forEach items="${users}" var="user">
                    <tr>
                        <td>${user.prenom}</td>
                        <td>${user.nom}</td>
                        <td>${user.matricule}</td>
                        <td>${user.login}</td>
                        <sec:authorize access="hasRole('ADMIN') or hasRole('READ')">
                            <td><a href="<c:url value='/edit-user-${user.login}' />" class="btn btn-success custom-width">edit</a></td>
                        </sec:authorize>
                        <sec:authorize access="hasRole('ADMIN')">
                            <td><a href="<c:url value='/delete-user-${user.login}' />" class="btn btn-danger custom-width">delete</a></td>
                        </sec:authorize>
                    </tr>
                </c:forEach>
                </tbody>
            </table>
        </div>
        <sec:authorize access="hasRole('ADMIN')">
            <div class="well">
                <a href="<c:url value='/newuser' />">Add New User</a>
            </div>
        </sec:authorize>
    </div>

AppController.java

@Controller
@RequestMapping("/")
@SessionAttributes("roles")
public class AppController {

    @Autowired
    IService_User<USER> userService;

    @Autowired
    IService<COMPTE> compteService;

    @Autowired
    MessageSource messageSource;

    @Autowired
    PersistentTokenBasedRememberMeServices persistentTokenBasedRememberMeServices;

    @Autowired
    AuthenticationTrustResolver authenticationTrustResolver;

@RequestMapping(value = { "/", "/list" }, method = { RequestMethod.GET, RequestMethod.POST })
    public String listUsers(ModelMap model) {

        List<USER> users = userService.findAllOBJECTS();
        model.addAttribute("users", users);
        model.addAttribute("loggedinuser", getPrincipal());
        return "userslist";
    }

@RequestMapping(value = {"/login"}, method = { RequestMethod.GET, RequestMethod.POST })
    public String loginPage() {
        if (isCurrentAuthenticationAnonymous()) {
            return "login";
        } else {
            return "redirect:/list";
        }
    }
}

有2页:login.jsp-起始页,其中包括与登录和密码填充的形式-userlist.jsp结果列表“显示数据库中所有用户持久化”..首先显示登录页面,当我单击提交按钮时,我得到了这个错误:org . spring framework . web . servlet . pagenotfound-不支持请求方法“POST”

共有3个答案

孔皓
2023-03-14

@RequestMapping注释中添加post方法,如下所示;)

@RequestMapping(value = {"/login"}, method = {RequestMethod.GET, RequestMethod.POST})
public String loginPage() {
    if (isCurrentAuthenticationAnonymous()) {
        return "login";
    } else {
        return "redirect:/list";
    }
}
凌波峻
2023-03-14

在您的登录表单中,您明确发出了 POST 请求...在您的控制器中,URL 映射到 GET 请求。这就是问题所在...请将控制器设为开机自检...喜欢

@RequestMapping(value = {"/login"}, method = RequestMethod.POST)
    public String loginPage() {
        if (isCurrentAuthenticationAnonymous()) {
            return "login";
        } else {
            return "redirect:/list";
        }
    }
彭骏
2023-03-14

在您的登录中。jsp您使用的http方法POST

<form action="${loginUrl}" method="POST">

而在控制器中,你使用的是http方法GET

@RequestMapping(value = {"/login"}, method = RequestMethod.GET)
    public String loginPage() {
        if (isCurrentAuthenticationAnonymous()) {
            return "login";
        } else {
            return "redirect:/list";
        }
    }

更改方法= RequestMethod.POST 后,问题将在控制器中得到解决,如下所示

@RequestMapping(value = {"/login"}, method = RequestMethod.POST)
    public String loginPage() {
        if (isCurrentAuthenticationAnonymous()) {
            return "login";
        } else {
            return "redirect:/list";
        }
    }
 类似资料:
  • 我正在编写一个控制器来处理来自AJAX的帖子。我一直收到一个错误,那篇文章不受支持。我以前在尝试创建后控制器方法时从未遇到过以下错误,我希望有人能发现我在哪里搞砸了。 这是我为控制控制器中的帖子而编写的方法: 使用JQuery 1.10,这是请求它的Ajax调用: 我知道POST地址是正确的,因为将它转换成GET请求就可以了。此外,我还编写了其他POST请求,它们在同一个控制器类中也能正常工作。任

  • 我刚刚开始学习Java Spring Boot for REST API开发。在下面的代码中,GET方法可以正常工作,但POST不能。 在Postman应用程序中使用as 错误 在日志中我可以看到, maven的Java和springboot版本,

  • 下面是我的方法 当调用GET request时,它的工作很好,但是当我们调用POST request和request payload checkout_token=xxxx时,我得到以下错误 编辑 甚至我尝试删除所有参数,但仍然没有运气到目前为止。

  • 如何解决这个问题?

  • 属性: 这是一个简单的mvc控制器类,我在其中发布请求以在资源/静态文件夹中获取index.html页面。每当我从rest客户端或html表单发送发布请求时,我都会收到错误-“不支持请求方法'POST'”。当我将“请求方法”更改为“请求方法”时。POST”改为“请求方法”。GET”它可以正常工作。

  • 我盯着Spring启动工作,并尝试一个简单的Rest控制器。我有两种使用HTTP GET的方法,它们工作正常。但是,当我做一个HTTP POST时,它不工作,显示:: 不支持请求方法“POST” 我的控制器代码如下:- 敬请告知,createGreeting方法有什么问题。 亲切的问候