【发布时间】:2013-11-16 10:31:31
【问题描述】:
我正在尝试编写自己的转换器
我想用 @EJB 将我的 EJB 注入到我的转换器中。 我的 @EJB 在其他我的 ManagedBean 中工作,但在我的转换器中不起作用
@ManagedBean
@ViewScoped
public class ServerTypeConverter implements Converter {
@EJB
private ServerTypeFacade serverTypeFacade;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null || value.isEmpty()) {
return null;
} else {
int id = Integer.parseInt(value);
return serverTypeFacade.findById(id);
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value == null || value.equals("")) {
return "";
} else {
Integer id = ((ServerType) value).getServer_type_id();
return String.valueOf(id);
}
}
}
ServerTypeFacade 返回 null。为什么?
这是我使用转换器的方式
<h:selectOneMenu value="#{serverMB.selectedServerType}">
<f:converter converterId="serverTypeConverter"/>
<f:selectItems value="#{serverMB.serverTypesList}" var="servertypes" itemLabel="#{servertypes.server_type_name}" />
<f:ajax listener="#{serverMB.changeServerType}" render="dd" />
</h:selectOneMenu>
【问题讨论】:
-
你如何使用转换器?