【问题标题】:Server-side validation example?/Java服务器端验证示例?/Java
【发布时间】:2017-08-04 20:26:33
【问题描述】:

我正在尝试创建一个同时执行客户端和服务器端验证的注册表单。我正在使用 Spring MVC 和 Hibernate 来执行此操作。我已经弄清楚了客户端,但是我对如何进行服务器端验证感到困惑?这甚至可能与我想要实现的目标吗?

如果我不明白,我很抱歉,我是一个相当新的程序员。如果需要更多信息,请告诉我。

【问题讨论】:

  • Spring 还提供了@Validator 注解和BindingResult 类,通过它我们可以在控制器请求处理方法中获取Validator 实现引发的错误,并且hibernate-validator 使验证更容易。
  • 您需要哪个级别的验证以及用于什么目的?为限制验证提供休眠注释是否足够?
  • 我必须验证姓名、电子邮件、电话号码、地址、城市、国家/地区等内容。如果有意义的话,一些必须在客户端验证,而另一些则在服务器端验证

标签: java hibernate validation spring-mvc server-side


【解决方案1】:

Hibernate Validator 可以满足您在服务器端验证字段的要求。

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

import org.hibernate.validator.constraints.CreditCardNumber;
import org.hibernate.validator.constraints.Email;

public class User {

    @NotNull(message = "username cannot be null")
    @Size(min = 2, max = 15)
    private String username;

    @Max(100)
    private int age;

    @Email
    private String email;

    @CreditCardNumber
    private String creditCardNumber;

    // constructors, getters, setters
}

Maven 依赖项:

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>5.4.1.Final</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多