【问题标题】:Spring MVC, Hibernate Validation, Form request is not validatedSpring MVC,休眠验证,表单请求未验证
【发布时间】:2017-10-24 14:05:55
【问题描述】:

我需要一些有关 spring mvc 4.3 和 hibernate 验证的帮助。 我已经导入了“hibernate-validator-6.0.3.Final.jar”和“validation-api-2.0.0.Final.jar”(“hibernate-validator-6.0.3.Final.jar”的一部分)。

当我用数据(用户名和密码)填写表单时,用户名和密码未经过验证,因此请求指向索引

User.java

package invoice.user;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class User {

    @NotNull(message = "required")
    @Size(min = 3, max = 50, message = "Username incorrect")
    private String username;

    @NotNull(message = "required")
    @Size(min = 3, max = 50, message = "Password incorrect")
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

UserController.java

package invoice.user;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.validation.Valid;

@Controller
public class UserController {

    @RequestMapping("/")
    public String showLoginPage(@ModelAttribute("user") User user){
        return "user/user-login";
    }

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String processLoginForm(@Valid @ModelAttribute("user") User user, BindingResult results){
        if(results.hasErrors()){
            return "user/user-login";
        }
            return "user/index";
    }
}

【问题讨论】:

  • 能否分享更多配置相关的代码
  • 我是新手,应该分享什么配置?
  • 你到底需要什么..?

标签: java spring hibernate spring-mvc


【解决方案1】:

UserController中,showLoginPage会接受所有请求并返回user/user-login.remove this then check

@Controller
public class UserController {

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String processLoginForm(@Valid @ModelAttribute("user") User user, BindingResult results){
        if(results.hasErrors()){
            return "user/user-login";
        }
            return "user/index";
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2023-03-21
    • 2023-03-16
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多