从我的JSF调用此converter
。我已经在faces-config.xml
public class ProjectConverter implements Converter{
@EJB
DocumentSBean sBean;
@ManagedProperty(value="#{logging}")
private Logging log;
public ProjectConverter(){
}
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
if(value.trim().equals("")){
return null;
}
return sBean.getProjectById(value);
}
public String getAsString(FacesContext context, UIComponent component, Object value)
{
if(value == null){
return null;
}
return String.valueOf(((Project) value).getId());
}
}
我遇到java.lang.NullPointerException
,当我在getAsObject()
时,主要原因是因为我的会话Bean sBean
为空。我不知道如何解决这个问题,我需要访问我的Session bean,以便我可以从我的数据库中查询
答案 0 :(得分:10)
正如BalusC所说,注入仅适用于托管bean。但是,您可以在faces-config
中将转换器声明为托管bean<managed-bean>
<managed-bean-name>myConverter</managed-bean-name>
<managed-bean-class>com.example.MyConverter</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
稍后在具有el表达式的jsf组件中引用它:
<h:outputText value="#{myBean.value}" converter="#{myConverter}" />