gpt4 book ai didi

java - 在自定义转换器中如何访问 EJB bean

转载 作者:行者123 更新时间:2023-12-01 06:48:03 25 4
gpt4 key购买 nike

这个converter是从我的 JSF 调用的。我已经在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()时,主要原因是因为我的Session Bean sBean一片空白。我不知道如何解决这个问题,我需要访问我的 session bean,以便我可以从数据库中查询

最佳答案

BalusC也就是说,注入(inject)仅适用于托管 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>

然后在 jsf 组件中使用 el 表达式引用它:

<h:outputText value="#{myBean.value}" converter="#{myConverter}" />

关于java - 在自定义转换器中如何访问 EJB bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com