将managed-bean属性注入自定义转换器

djm*_*jmj 8 jsf properties list converter javabeans

如何将托管bean的属性注入自定义转换器?

例如,一个通用List,以便我可以从转换器内的列表中提取我的对象?

Mr.*_*mes 9

在某些情况下,当您需要将一个bean(如ManagedBean,EJB等)注入a Converter或a时Validator,您可以尝试注释您ConverterValidator作为ManagedBean.例如,你可以试试这个:

@ManagedBean
@RequestScoped
public class MyConverter implements Converter {
    @EJB
    private MrEJBBean mrEJBBean;
    @ManagedProperty(value="#{mrsManagedBean}")        
    private MrsManagedBean mrsManagedBean;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {        
        // Convert to object
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        // Convert to string
    }

}
Run Code Online (Sandbox Code Playgroud)

你可以看一下这个例子Validator.

  • +1我还要注意,`Converter`必须通过托管bean值绑定表达式引用,而不是通过注册的转换器ID引用. (6认同)