大佬教程收集整理的这篇文章主要介绍了如何使用@ EJB,@ PersistenceContext,@ Inject,@ Autowired注入@FacesValidator,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在@FacesValIDator
不被注入容器管理。你需要使其成为托管bean。使用Spring @Component
,CDI @named或JsF @managedBean
代替,@FacesValIDator
以便使其成为托管bean,从而有资格进行依赖项注入。
例如,假设你要使用JsF @managedBean
:
@managedBean
@requestScoped
public class EmailExistValIDator implements ValIDator {
// ...
}
你还需要通过#{name}EL 将其作为托管bean进行引用,而不是作为硬编码字符串中的验证器ID 进行引用。这样
<h:inputText ... valIDator="#{emailExistValIDator.valIDatE}" />
要么
<f:valIDator binding="#{emailExistValIDator}" />
代替
<h:inputText ... valIDator="emailExistValIDator" />
要么
<f:valIDator valIDatorID="emailExistValIDator" />
这确实很尴尬。JsF伙计们已经证实了这一令人尴尬的监督,他们将使@FacesValIDator(和@FacesConverter
)合格的目标成为即将到来的JsF。2.22.3,另请参阅JsF规范发行763。对于EJB,有一种解决方法,可以从JNDI手动获取它,另请参见在@FacesConverter和@FacesValIDator中获取@EJB。如果碰巧使用了CDI扩展MyFaces CODI,那么你也可以通过@Advanced在类上添加注释来解决它。
我怎样才能像注入的依赖@EJB
,@PersistenceContext
,@Inject
,@AutoWired
,等的@FacesValidator
?在我的特定情况下,我需要通过以下方式注入Spring托管的bean @AutoWired
:
@FacesValidator("emailExistValidator")
public class EmailExistValidator implements Validator {
@Autowired
private UserDao userDao;
// ...
}
但是,它没有注入,而是保留了null,导致java.lang.NullPointerException
。似乎@EJB
,@PersistenceContext
并且@Injec
t也不起作用。
如何在验证器中注入服务依赖项,以便可以访问数据库?
以上是大佬教程为你收集整理的如何使用@ EJB,@ PersistenceContext,@ Inject,@ Autowired注入@FacesValidator全部内容,希望文章能够帮你解决如何使用@ EJB,@ PersistenceContext,@ Inject,@ Autowired注入@FacesValidator所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。