HTTP状态400 - 必需字符串参数“userid”不存在

时间:2018-03-30 11:26:51

标签: java hibernate spring-mvc

我尝试使用此代码进行登录页面并收到上述错误,我是春天的新手,请帮助我。

@Controller
@RequestMapping("/login")

public class LoginController {

    @Autowired
    private LoginService loginser;

    @RequestMapping("/loginadmin")
    public String loginAdmin() {

        return "loginadmin";
    }

    @RequestMapping("/loginemployee")
    public String loginEmployee() {

        return "loginemployee";
    }

    @RequestMapping("/adminvalidate")
    public @ResponseBody String validateAdmin(@RequestParam(value="userid") String userid, @RequestParam(value="password") String password) {
        String result = loginser.validate(userid, password);
        if (result.equals("pass")) {
            return "redirect:/admin/view";
        }
        return "error";
    }

}

UI

<div id="wrapper">
    <div id="header">
        <h1>Admin Login</h1>
    </div>
</div>

<div id="container">
    <div id="content">

        <form:form action="adminvalidate" 
            method="POST">

            <table>
                <tbody>
                    <tr>
                        <td><label>User-Id : </label></td>
                        <td><input type="text" path="emp_Id" placeholder="User Id" id="userid"/></td>
                    </tr>
                    <tr>
                        <td><label>Password : </label></td>
                        <td><input type="password" path="emp_firstname" placeholder="Password" id="password"/></td>
                    </tr>
                    <tr>
                        <td><label></label></td>
                        <td><input type="submit" value="login"></td>
                    </tr>

                </tbody>
            </table>

                    <input type="button" value="back" onclick="window.location.href='/';return false">


        </form:form>

    </div>
</div>

我需要为登录页面编写代码来检查凭据并且收到400错误

2 个答案:

答案 0 :(得分:1)

当服务器由于语法无效而无法处理客户端发送的请求时,会出现

400错误。检查您的URL语法,并且您没有在控制器中提供方法名称,如POST

答案 1 :(得分:0)

由于您放置的是图像而不是代码,因此无法看到您的整个代码,

根据您的问题,原因是userid参数未传递给您的控制器方法,请检查您是否设置了用户ID输入元素的名称,如下所示:

<input type='text' name='userid' path='emp_id'>

避免此问题的另一种可能方法是在控制器方法中设置required=false

public @ResponseBOdy String validateAdmin(@RequestParam(value="userid",required=false)){
}