如何解决未将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,我得到了一个NullPointerEx。由于它也是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 举报,一经查实,本站将立刻删除。