我正在使用spring(4.2.0.RELEASE)、hibernate validator(5.2.1.Final)和validation api(1.1.0.Final)对后端应用程序进行JSR验证,配置如下:,
<bean id="validatorFactory" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource" ref="messageSource" />
</bean>
<bean class="org.springframework.expression.spel.standard.SpelExpressionParser" />
但是没有一个JSR303注释在我的应用程序中工作。
注意:在POJO类上添加了JSR303注释,在服务类(使用POJO)上添加了@Validated注释,还尝试在方法级别添加@Validated注释。
更新:服务接口
@Validated
public interface SampleService {
@NotNull
@Valid
Account getAccount( @NotNull @Valid String customerKey, @NotNull String name);
服务实施
@Service
@Validated
@Transactional( readOnly=true )
public class SampleServiceImpl
implements SampleService
{
private final SampleDao sampleDao;
@Inject
public SampleServiceImpl( SampleDao sampleDao)
{
this.sampleDao= sampleDao;
}
@Override
@Validated
public Customer getAccount( String customerKey, String name)
{
try {
return sampleDao.getAccount( customerKey, name);
}
catch ( EmptyResultDataAccessException e ) {
throw new NotFoundException( e );
}
}
重复问题,请阅读此问题
服务层验证
此链接解释了默认情况下,仅在控制器层支持Spring注释验证。对于服务层,要么重用一些Spring组件并调整一些配置,要么滚动自己的AOP。但是我建议选择前者。再利用。
有几件事:
1-您需要验证POJO,因此创建一个POJO并用您想要的验证对其进行注释,即:
public class Customer {
@NotNull
private String name;
@NotNull
private String customerKey;
...
}
2-@Valid注释需要在实现上:
@Override
public Customer getAccount(@Valid Customer customer, BindingResult bindingResult) {}
3-确保你有
BindingResult在方法上不是必需的,但它会为您提供发现的验证错误,并允许您在返回响应之前对这些错误进行处理。
我正在尝试使用Hibernate Validator 5.0.1和JSF2.2,但自mojarra版本2.2.3以来,它们的集成似乎被破坏了。我创建了一个小应用程序来演示这个问题,并获得异常“javax.servlet.ServletException:表达式错误:命名对象:未找到javax.faces.Bean”在Tomcat 7.0.42上运行时。 还有其他人有这个问题吗? webapp/页面
我正在尝试在我的Jenkins工具中配置LDAP身份验证。我已经在Jenkins上完成了以下LDAP身份验证的设置,但我仍然无法登录。 服务器:ldaps://rootdc1.myweb.com:636 根DN:dc=myweb,dc=com 提前感谢!
我试图通过将请求参数直接绑定到用户实体来简化我的代码,而不是一个字段一个字段地复制值,但是我似乎不能通过这种方式得到验证。 控制器: 验证器: 模型(注意嵌套对象用@Valid标注): 问题是只有密码和重新密码字段被正确验证,用户类中的验证注释被忽略,任何密码匹配的请求都通过,但它应该会出现错误。空密码或不同的密码会按预期出现错误。
我使用Python和selenium(PhantomJS webdriver)来解析网站,但遇到了问题。 我想从这个电台网站获取当前歌曲:http://www.eskago.pl/radio/eska-warszawa. xpath: 该xpath不适用于python selenium 错误: Traceback(最近一次调用):File"parser4.py",第41行,p.loop()File
我缺少一些真正基本的东西(与EAR或EAR配置中的类加载相关)。我不明白,为什么我的JSR303验证和Hibernate验证不是从EAR内部触发的...如果我创建一个新的战争项目,它就会触发。 我正在Weblogic Server10.3上用Maven、JSF2.0、Open-JPA、EJB3.0建立一个新项目。我使用maven原型创建了所有项目。我有一个最终的EAR构建,它的结构如下: 项目名称
当我在Spring Boot项目的控制器类中使用“@Validated”注释并在Liberty服务器上运行它时,依赖项注入出现中断(它在调用注入变量的行上返回NullPointerException)。如果我在Tomcat上运行这个项目,它工作得很好。如果我在类上注释掉“@Validated”并在Liberty上运行项目,也可以。它只有“@Validated”和自由。有什么想法吗? 以下是我的最小