相关疑难解决方法(0)

未调用跨领域验证的自定义类级别约束

我正在尝试在类级别上使用自定义注释实现跨场验证(JSR-303).但是不调用isValid方法(而是初始化方法).

所以我的问题是:为什么没有为这个类级验证器调用isValid方法?在物业层面定义它的作品!

我在JBoss AS 7和Websphere AS 8上尝试过它.

这是代码和JUnit测试(有效)

Test.java

public class Test {

@org.junit.Test
public void test() throws ParseException {
    Person person = new Person();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMDD");
    person.setPartyClosingDateFrom(new Date());
    person.setPartyClosingDateTo(sdf.parse("20120210"));
    Set<ConstraintViolation<Person>> violations = Validation.buildDefaultValidatorFactory().getValidator().validate(person);
    for(ConstraintViolation<Person> violation : violations) {
        System.out.println("Message:- " + violation.getMessage());
    }
}
  }
Run Code Online (Sandbox Code Playgroud)

DateCompare.java

 import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import javax.validation.Constraint;
 import javax.validation.Payload;

 @Target({ TYPE})
 @Retention(RUNTIME)
 @Constraint(validatedBy = DateCompareValidator.class)
 @Documented
 public @interface DateCompare {

/** First date. …
Run Code Online (Sandbox Code Playgroud)

java annotations bean-validation jsf-2

8
推荐指数
1
解决办法
4876
查看次数

在客户端删除输入时跳过验证器 - 这是按照JSF规范吗?

我有一个页面,其输入文本组件标记为required="true"Validator在服务器端具有自定义.

现在作为客户端,我提交的页面没有该组件呈现的HTML元素(这可以通过使用浏览器的内置DOM元素检查器从DOM树中删除元素来轻松实现).表单已成功提交,无需服务器端验证此必需组件.

这是按照JSF规范吗?有没有办法指定即使发布的页面不包含它们,也要执行页面中的验证器?

validation jsf tampering jsf-2

7
推荐指数
1
解决办法
363
查看次数

标签 统计

jsf-2 ×2

annotations ×1

bean-validation ×1

java ×1

jsf ×1

tampering ×1

validation ×1