相关疑难解决方法(0)

@RequestParam验证

有没有一种方法可以使用 spring 验证请求参数,而无需在每个函数中检查它?例如,控制器中的每个方法都会生成元素列表,并且每个方法接受“from”和“to”参数,因此验证是: from >=0 && to > 0 && from < to

我想配置 spring 返回BAD_REQUEST或其他一些状态,就像它无法将 string 转换为 int 参数时一样。

谢谢。

java validation spring spring-mvc

5
推荐指数
1
解决办法
2380
查看次数

两个日期字段之间的弹簧验证?

在我的Spring应用程序中,我Hibernate Validator用于验证目的.

当我做简单的验证时@NotEmpty,@Email...我很容易工作

但是当来到Date字段时,给出问题......

问题是在我的Jsp页面中我得到的值类型为String然后我将String转换为Date ..

听到是我的榜样......

@NotEmpty(message = "Write Some Description")
private String description;

private String fromDateMonth;

private String fromDateYear;

private String toDateMonth;

private String toDateYear;
Run Code Online (Sandbox Code Playgroud)

我正在转换这fromDateMonth和fromDateYear成这是我的控制器类Date.

那么他们在Controller类中添加Validator Annotation的任何可能性是什么?

其他明智的我应该听到什么?给我建议......

java spring hibernate-validator spring-validator

4
推荐指数
2
解决办法
2万
查看次数

Java Hibernate Validator需要一个或另一个

这是我上一个问题的延伸.我实施了Dennis R的答案并且正在使用hibernate-validator.有没有办法要求在json请求中指定一个或另一个字段,但不能同时指定两个字段?从我之前的帖子中,在Request类中,我希望用户传入id或代码,但不能同时传递.

我发现这个资源对我来说可能是正确的解决方案,但我不完全了解那里发生了什么,为什么这样做,坦率地说,看起来完全过于冗长.这是唯一的方法吗?

java validation json hibernate

4
推荐指数
1
解决办法
2706
查看次数

在Spring中对JSR-303验证进行单元测试

我正在尝试使用JSR-303验证在spring中为带注释的bean添加单元测试.

这个bean很简单:

public class Bean {
   @Size(max=XX)  
   String text;  
}  
Run Code Online (Sandbox Code Playgroud)

在Spring配置中,我有所有必需的JAR文件:

 validation-api  
 hibernate-validator
Run Code Online (Sandbox Code Playgroud)

验证器初始化为:

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
Run Code Online (Sandbox Code Playgroud)

我在测试用例中的尝试看起来像这样(弹簧和其他绒毛被移除):

@Autowired
private LocalValidatorFactoryBean factory;


@Test
public void testTemplateFormBeanValidation() {
// TODO exception at the moment. Can not resolve the validator. Provider issue.
factory.setProviderClass(HibernateValidator.class);
factory.setTraversableResolver(new DefaultTraversableResolver());
Validator val = factory.getValidator();
TemplateFormBean fb1 = new TemplateFormBean();
fb1.setText("this text works");
Set<ConstraintViolation<TemplateFormBean>> constraints = val.validate(fb1);
assertNull(constraints);

}
Run Code Online (Sandbox Code Playgroud)

当我运行此测试时,我得到以下堆栈跟踪:

java.lang.AbstractMethodError: javax/persistence/spi/PersistenceProvider.getProviderUtil()Ljavax/persistence/spi/ProviderUtil;
at javax.persistence.Persistence$1.isLoaded(Persistence.java:78)
at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:62)
at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:94)
at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:47)
at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:757)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:324)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForRedefinedDefaultGroup(ValidatorImpl.java:273)
at …
Run Code Online (Sandbox Code Playgroud)

spring hibernate-validator

3
推荐指数
1
解决办法
8266
查看次数

将表单验证中生成的全局错误绑定到spring中的特定表单字段

有可能吗?
我做了一个检查,如果2场是由等于自定义注解这里.
我想验证字段"password"是否等于另一个字段"confirmedPassword".现在,如果不是,我希望显示链接到confirmedPassword字段的错误消息.我在jsp中显示错误<form:errors path="" />.还有另一种方法吗?另外也可能有这个注释另外2场email和confirmedEmail.我怎么能区分哪个全局错误放在哪里......

我希望这一切都有道理..

binding spring

3
推荐指数
1
解决办法
926
查看次数

Play框架验证匹配字段

对于我提交的所有表单,我正在创建文档以接收提交的信息

例如public static void formAction(@Valid FormDocument formDocument){...}

我喜欢这个,因为它让我的控制器看起来整洁,并且更容易看到表单中的请求.

我的注册文件看起来(修剪)像这样:

@Email
@Required
public String email;
@Required
public String password;
@Required
public String confirmPassword;
Run Code Online (Sandbox Code Playgroud)

我的问题是有没有办法可以检查密码是否与此类本身中的confirmPassword字段匹配.目前我正在检查控制器并在验证失败时将验证消息传回.我认为如果它是在文档内部完成的话会更整洁.

感谢您的任何反馈/答案提前!

java playframework

3
推荐指数
1
解决办法
2082
查看次数

跨域bean验证 - 为什么你不工作

我的应用程序在这里遇到了一些问题.我想检查字段密码和确认密码是否匹配在一起,所以我尝试在这个问题的第一个答案中这样做:使用Hibernate Validator进行交叉字段验证(JSR 303)

问题是它实际上不起作用,我没有想法为什么.请帮我!这是我在这里的第一篇文章,所以请不要对我太苛刻.

这是我的注释:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.lodz.p.zsk.ssbd2012.ssbd12.ValidationConstraints;

import java.lang.annotation.*;
import javax.validation.Constraint;
import javax.validation.Payload;

/**
 *
 * @author lukasz
 */
@Documented
@Constraint(validatedBy = FieldMatchValidator.class)
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldMatch {

String message() default "{pl.lodz.p.zsk.ssbd2012.ssbd12.ValidationConstraints.FieldMatch}";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

String first();

String second();
}
Run Code Online (Sandbox Code Playgroud)

这是我的ValidatorClass:

/*
 * To change this template, choose Tools | Templates
 * …
Run Code Online (Sandbox Code Playgroud)

validation hibernate-validator bean-validation jsf-2 managed-bean

0
推荐指数
1
解决办法
3420
查看次数