Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 在Spring MVC中使用无效数据提交表单时发送的语法错误请求(使用hibernate Validator)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

登录表格:

@H_403_6@

loginData类:

@H_403_6@package com.demo.forms;

import org.hibernate.validator.consTraints.Length;
import org.hibernate.validator.consTraints.NotEmpty;

public class loginData {
    @Length(min=4)
    private String uname; 

    @NotEmpty
    private String pwd;

    public String getUname() {
        return uname;
    }
    public void setUname(String uName) {
        thiS.Uname = uname;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

显示和提交表单的控制器方法:(显示包含注册表单和登录表单的主页)

@H_403_6@@requestMapping(value = "/",method=requestMethod.GET)
    public String showHome(Model model)
    {
        loginservice.logout();
        model.addAttribute("logindata",new loginData());
        model.addAttribute("signupdata",new signupdata());
        return "home";
    }

要求提交登录表单的方法

@H_403_6@@requestMapping(value = "login",method=requestMethod.POST)
    public String submitloginForm(@Valid loginData logindata,SessionStatus state,Model model,BindingResult result)
    {
            if((loginservice.loggedin()) || (result.hasErrors()))
            {
                return showHome(model);
            }
            else
            {
                String uname = logindata.getUname();
                String pwd = logindata.getPwd();
                if(loginservice.login(uname,pwd))
                {
                    model.addAttribute("user",uName);
                    return "redirect:profile";
                }
                else
                {
                    model.addAttribute("message","Invalid Username/password");
                    return showHome(model);
                }   
            }   
    }

输入的数据为“有效”(正确或错误)时,登录正常.但是,当它无效时,例如,当密码字段为空或用户名长度少于四个字符时,将显示以下错误

@H_403_6@The request sent by the client was syntactically incorrect.

知道如何解决这个问题吗?

最佳答案
您必须修改参数的顺序.将BindingResult结果参数始终直接放在带有@Valid注释的参数之后.

@H_403_6@@requestMapping(value = "login",method=requestMethod.POST)
public String submitloginForm(@Valid loginData logindata,BindingResult result,Model model)

在本周的This Week in Spring – March 5th,2013博客文章中甚至提到了这一点

春天会

> 0)确定处理程序方法
> 1)创建loginData的实例
> 2)填充它
> 3)验证它,并将验证结果存储在BindingResult中
> 4)无论何时绑定Result包含错误,都会调用方法(使用loginData和BindingResult值)

大佬总结

以上是大佬教程为你收集整理的java – 在Spring MVC中使用无效数据提交表单时发送的语法错误请求(使用hibernate Validator)全部内容,希望文章能够帮你解决java – 在Spring MVC中使用无效数据提交表单时发送的语法错误请求(使用hibernate Validator)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。