草庐IT

Validation

全部标签

java - 在 Hibernate Validator 中为每个属性生成一个错误代码

我正在考虑使用HibernateValidator来满足我的要求。我想验证一个JavaBean,其中属性可能有多个验证检查。例如:classMyValidationBean{@NotNull@Length(min=5,max=10)privateStringmyProperty;}但是,如果此属性验证失败,我希望将特定的错误代码与ConstraintViolation相关联,无论它是否因@Required或@Length而失败,尽管我想保留错误消息。classMyValidationBean{@NotNull@Length(min=5,max=10)@ErrorCode("1234")

java - 禁用基于外部 DTD/XSD 的 XML 验证

有没有一种方法可以在不修改(构建DocumentBuilder的库的)源代码的情况下禁用基于外部DTD/XSD的XML验证?比如为DocumentBuilderFactory功能设置JVM范围内的默认值,以及为SAX设置相同的默认值?在IDE中编辑文件时验证非常好,但我不需要我的webapp仅仅因为somelib.net宕机而无法启动。我知道我可以指定本地DTD/XSD位置,但这是一个不方便的解决方法。有哪些选项?我能想到两个:实现我自己的DocumentBuilderFactory。拦截Xerces的DocumentBuilderImpl构造并修改features哈希表(添加http

java - Spring MVC - 如何检查没有传递意外的查询字符串参数?

我有一个用SpringMVC编写的Web服务。它可供第3方开发人员使用。我们的方法有很多可选参数(在查询字符串中传递)。我想确保所有查询字符串参数都拼写正确并且没有拼写错误。有简单的方法吗?方法签名示例:@RequestMapping(value={"/filter"},method=RequestMethod.GET)@ResponseBodypublicListgetMetricTypes(@RequestParam(value="subject",required=false)LongsubjectId,@RequestParam(value="area",required=fa

java - 用于 TomEE 7 上的 bean 验证的自定义异常映射?

上下文我们使用javax.ws.rs.ext.ExceptionMapper注释为@javax.ws.rs.ext.Provider处理所有异常。在内部这个ExceptionMapper区分不同类型的异常以确定向客户端显示哪些信息。在javax.validation.ConstraintViolationException的情况下,我们返回有关哪个字段无效及其原因的附加信息。问题我们刚从TomEE1.7.2JAX-RS切换过来至TomEE7.0.0-SNAPSHOTwebprofile.与TomEE1.7.2JAX-RS我们使用了openejb.jaxrs.providers.auto

java - JSR303 自定义 validator 被调用两次

我正在使用SpringMVC创建一个网站,为了保持持久性,我使用带有Hibernate4的SpringDataJPA作为我的JPA提供程序。目前正在使用HibernateValidator处理验证。我有一个问题,我的validator被调用了两次,我不知道为什么。这是一个问题的主要原因是因为第二次,依赖项没有自动连接到validator中,我得到一个空指针异常。以下是导致失败的调用顺序:提交注册表单,首先调用NotDefaultSectValidator并成功完成用户对象上的“whereDidYouHearAboutUs”字段。接下来调用UniqueUsernameValidator并

javax.validation : Constraint to validate a string length in bytes

我正在使用javax.validation来验证一些bean字段的值。这是我通常使用的:publicclassMarket{@NotNull@Size(max=4)privateStringmarketCode;@Digits(integer=4,fraction=0)privateIntegerstalls;//getters/setters}这将确保每个Market实例都有一个最大长度为4个字符的市场代码和一个最大为4位整数和0的摊位数量十进制数字。现在,我使用这个bean从DB加载/存储数据。在数据库中,我有如下定义的表Markets:CREATETABLEMARKETS(MAR

java - 正则表达式验证 csv 字符串

我在javaFX中有一个TextField,其中背景颜色会根据内容是否有效而相应变化。有效:987654321198765432121010191170191124101917104308019178200111910840无效:010191010312403149基本上:只有数字第一组4或9位数字如果第一组9位->总共只有两组如果第一组4位->一共三四五组1-9999两位和三位数字四五位数字0-9999现在将这些(有效)行之一视为一个“Ident”。当前的正则表达式是:finalStringbase="(\\d+\\s+\\d+)|(\\d+\\s+\\d+\\s+\\d+(\\s+

java - 新 gTLDS 的 apache commons-validator 替代品

我需要验证电子邮件和域。我只需要正式验证,不需要whois或其他形式的域查找。目前我正在使用apache的commons-validatorv1.4.0不幸的是,我的客户使用DomainValidator类尚不支持的新gTLD,例如.bike或.productions。参见Apache'sJiraissue了解更多详情。是否有任何我可以轻松包含在我的MavenPOM中的可靠替代方案? 最佳答案 如果您不关心国际化地址,您可以更改地址的最后一部分,并继续使用Apachecommons。这种方法是基于这样一个事实,即无论TLD是什么,整

java - 防止 Hibernate session 刷新/存储无效的脏实体

我想知道采取哪种方法来防止Hibernate4.3.4(使用Spring和HibernateVaidator)刷新脏实体。在我的代码中,我使用HibernateValidator的手动实现(实例本身中的.validate()方法),它在保存实体之前被调用。validate()方法返回错误列表(如果发现任何错误),否则调用Session.update()来存储实体,然后提交事务。这可行,但是当实例本身被操作时(在实体中设置发布/请求参数)实体和相应的Hibernatesession被标记为“脏”并且实体与下一个Session.flush()一起存储。在我的例子中,我想明确控制可能存储的实

java - 如何让 Hibernate Validator 在第一个字段违规时停止验证?

我有一个bean,我在其中为每个字段定义了多个验证注释,例如@NotEmpty@Pattern(regexp="(\\-?\\d)+")@Min(value=1)StringmyField;我遇到了两个一个我无法用任何简单方法解决的问题。每个字段的指定注释的验证顺序是随机的,即不会按照注释定义的顺序发生。我相信@GroupSequence不会有帮助,因为它只定义组验证序列,而不是注释序列。正如@Tom正确评论的那样,违规被报告为Set,这意味着注释的执行顺序与报告的违规之间没有1:1的映射。我只想使每个字段的一个规则无效,即如果它不匹配模式,请不要尝试检查该值是否>=1。目前,如果将m