我正在尝试为我的类别模型制作自定义JSF转换器。从字段到转换器的值是类别ID。我应该按该ID检索类别,并返回该对象吗?我试过注入一个实体管理器但是没有用,因为它没有被管理。我能找到一个人做过的帖子,但我不知道是否通常会将实体管理员注入转换器。
或者我应该覆盖Category类中的toString方法,并返回一个字符串,如
2, "long description"
然后在字段中使用toString作为值。当我想要它回到一个对象时,我将它拆分并使用类别对象上的setter。我之前没有使用转换器,所以我不知道这是否更好?
答案 0 :(得分:2)
我尝试过注入一个实体管理器但是没有用,因为它没有被管理
无法在EntityManager
内注入@EJB
(或更好,@FacesConverter
)是JSF规范的疏忽,并且计划在即将推出的JSF 2.2中修复应该在2012年第一季度末发布。
解决方法是改为使转换器成为@ManagedBean
或@Named
bean,或者通过JNDI手动获取EJB。
或者我应该覆盖Category类中的toString方法,然后在字段中使用toString作为值。当我想要它回到一个对象时,我将它拆分并使用类别对象上的setter。
不,绝对不要那样做。你用这种方式混合模型。使用值得信赖的Converter
。