微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未将ManagedProperty注入@FacesConverter

如何解决未将ManagedProperty注入@FacesConverter

|| 我试图在我的Faces中注入ManagedBean转换为以下方式:
@ManagedBean
@RequestScoped
@FacesConverter(forClass = Group.class)
public class GroupConverter implements Converter {

@ManagedProperty(\"#{groupService}\")
private GroupService groupService;

@Override
public Group getAsObject(FacesContext context,UIComponent arg1,String groupName) {
    return groupService.findGroupByName(groupName);
}

@Override
public String getAsstring(FacesContext arg0,Object group) {
    return ((Group) group).getName();
}

public GroupService getGroupService() {
    return groupService;
}

public void setGroupService(GroupService groupService) {
    this.groupService = groupService;
}

}
问题是没有注入groupService,我得到了一个N​​ullPointerEx。由于它也是ManagedBean,是否应该自动自动接线?当我将\“ getAsObject \”更改为\“ return new Group(); \”时,所有这些工作正常。 有任何想法吗?     

解决方法

您很可能没有解析托管bean名称。
@ManagedBean(name = \"myConverter\")
@RequestScoped
@FacesConverter(value = \"myConverter\")
public class MyConverter implements Converter {
例如,请考虑以下两个组成部分:
        <h:inputText converter=\"myConverter\" value=\"#{foo.prop}\" />
        <h:inputText converter=\"#{myConverter}\" value=\"#{bar.prop}\" />
在第一个组件上设置转换器后,它将由Application.createConverter创建。转换器不是托管bean。如果按类型匹配转换器,则适用相同的规则。 在第二个组件中,值表达式用于返回实现Converter的类。这使用通常的托管bean机制。在这种情况下,“ 3”注释不相关。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。