Tag: bean validation

ValidationMessages.properties文件之间的冲突

我用来收集公共库中的所有validation约束。 在jar的根目录中,我放了一个ValidationMessages_it.properties文件。 一切正常,如果我将这个库放入jsf 2 war项目中,所有validation消息都会正确显示。 但是,如果我在war工件中放置另一个ValidationMessages_it.properties ,则会出现问题。 在这种情况下,会显示{library.message_key}字符串。 我认为Bean Validation在战争中找到了正确的属性文件,并没有考虑到库中的那个。 我怎么解决? 编辑 尝试澄清我的配置: 我有一个包含自定义约束的库commons.jar。 为了设置这些约束的消息,我在这个库的根目录中添加了ValidationMessages_it.properties commons.jar | + library | | | + CustomConstraint.class | + ValidationMessages_it.properties Validation_it.properties: library.custom=Questo è l’errore di cui parlavo CustomConstraint.java: @Pattern( regexp = “[az]”, message = “{library.custom}” ) @Constraint( validatedBy = {} ) @Documented @Target( { ElementType.METHOD, ElementType.FIELD } ) […]

如何在类级别约束之前validation字段级别约束?

我上课了: @ColumnNameUnique(groups = CreateTableChecks.class) public class Table { @Valid @NotEmpty(groups = CreateTableChecks.class) private List measures; } 类级别约束@ColumnNameUnique(groups = CreateTableChecks.class)始终先运行,之后运行字段级约束@NotEmpty(groups = CreateTableChecks.class) 。 无论如何强制字段级约束@NotEmpty(groups = CreateTableChecks.class)先运行?

如何使用Spring MVC JSR-303 Validator将不同的模型类validation为一个表单

我在jsp页面中有表格如下: First Name Last Name Email Street City State Country 在这个jsp名字,姓氏和电子邮件属于一个模型类,即员工。 最后所有属性如Street,City等属于EmployeeDetails模型类。 public class Employee { private Long empId; @Size(min=2, max=30) private String firstName; @Size(min=2, max=30) private String lastName; @NotEmpty @Email private String email; @DateTimeFormat(pattern=”MM/dd/yyyy”) @NotNull @Past private Date doj; @Phone private String phone; private EmployeeDetail employeeDetail; Getter/Setter } EmployeeDetail: public class EmployeeDetail { @Size(min=2, […]

Springvalidation器:同时具有注释和validation器实现

是否可以同时为表单和注释约束提供validation器? 例如,在表单对象中包含此字段: @NotEmpty private String date; 但然后在validation器中validation日期的模式。 我知道有模式注释,但我只是想看看我是否可以使用这两种类型的validation。

Java Beanvalidation:具有类级别约束的GroupSequence

我有一个bean类,有多个(自定义)内部约束和一个类级约束。 我想在类级别约束之前validation内部约束。 代码如下所示: @GroupSequence({ Inner.class, NewSlotBean.class }) @TotalBeanValid(groups = NewSlotBean.class) public class NewSlotBean { @DayMonthYearString(groups = Inner.class) private String slotDay; @TimeString(groups = Inner.class) private String slotBegin; @LengthString(groups = Inner.class) private String slotLength; } ( Inner只是一个位于某处的空接口)。 但是,当我尝试运行它时,类级别约束根本没有得到validation。 当我尝试定义GroupSequence时 @GroupSequence({ Inner.class, Outer.class }) (使用Outer是一个随机接口),我得到了exception: javax.validation.GroupDefinitionException: …*.beans.NewSlotBean must be part of the redefined default group sequence. s / […]

beanvalidation默认参数的顺序?

我目前正在尝试使用beanvalidation提供自定义validation消息。 目前使用spring mvc 3.1.1 + apache beanvalidation。 在我的bean中,我指定: @Size(min=1, max=50) private String title; 在我的messages.properties中: Size.addForm.title=The title must not be empty and must not exceed {1} characters. 从实验中我发现: {0}指’标题’ {1}指的是最大值,即50 {2}指的是min,即1 并且它将显示为The title must not be empty and must not exceed 50 characters. 哪个是对的。 但所有这些都来自实验。 我想知道是否有文件说明默认约束的参数顺序 ? 我希望使用Size.addForm.title=The title must not be empty and must not […]

Beanvalidation组序列不起作用

我正在使用spring 4.1,hibernatevalidation器5.1.3进行我的项目。 我一直试图让GroupSequence从最近2天开始工作。 我已经提到了validation文档,博客和stackoverflow上发布的一些问题。 请看下面的课程。 当我从注释中删除GroupSequence和groups时,所有validation消息都会出现在一起,即对名称和其他字段的所有检查都会一起触发。 让我们说名字字段 – 我想首先validation@NotBlank和@Size,然后名称应该与模式匹配,最后由于数据库调用应该检查@UniqueName。 为此,我按照文档和答案中的建议创建了GroupSequence。 但是当触发validation时,只会为名称触发@NotBlank和@Size。 当我从剩余的注释中删除组值时,它们开始工作但是所有错误消息都会立即显示,这是我不想要的。 我希望使用组指定的注释First.class在Second.classvalidation之前一起触发。 我不明白为什么用group指定的validation没有被解雇。 有人可以指导我。 @GroupSequence({MyForm.class, OrderedChecks.class}) public class MyForm { @NotBlank @Size(min = 2, max = 40) @Pattern(regexp = “^[\\p{Alnum} ]+$”, groups = First.class) @UniqueName(groups = Second.class)//Custom validation private String name; @NotBlank @Size(min = 2, max = 40) private String url; @NotBlank @Size(max = […]

JSF:如何validation字段并通过beanvalidation返回错误消息?

我有一个联系表单,我有一些通过beanvalidationvalidation的字段,如何在提交后返回beanvalidation错误消息? 例如: Name (Required) E-Mail (Required) Website (Optional) Message (Required): 这就是我validation字段的方式: // Client.java (model) @NotNull(message=”Please provide your name”) private String name; @NotNull(message=”Please provide your email”) @Pattern(regexp = “([^.@]+)(\\.[^.@]+)*@([^.@]+\\.)+([^.@]+)”, message = “Invalid e-mail”) private String email; @Pattern(regexp = “(http[s]?://|ftp://)?(www\\.)?[a-zA-Z0-9-\\.]+\\.([a-zA-Z]{2,5})$”, message = “Not valid URL”) private String website; @NotNull(message=”Please provide your message”) private String text;

你能在运行时更改注释消息吗?

我正在尝试在我的注释中包含一个动态消息,该消息根据传递给它的其他变量中的值来更改文本的主体。 我设置了默认消息,但是当设置了某个指示符时,我想显示不同的消息。 这可能吗? 这是我的注释 – @Target({TYPE, ANNOTATION_TYPE}) @Retention(RUNTIME) @Constraint(validatedBy = FieldMatchValidator.class) @Documented public @interface FieldMatch { Class[] groups() default {}; Class[] payload() default {}; String first(); String second(); String third() default “”; String match() default “true”; String message() default “{error.theseValuesDontMatch}”; /** * Defines several @FieldMatch annotations on the same element * * @see FieldMatch */ […]

可参数化的JSR-303validation值

我使用JSR-303 beanvalidation和Spring 3,我需要根据用例为注释提供不同的值。 例如, @Size(min=?)中min参数的值对于某些validation必须为1,对于另一种情况必须为5,并且我想从属性文件中读取此值。 我知道可以从ValidationMessages.properties文件中读取message参数(如果作为键提供)但是另一个参数呢?