selectOneMenu转换器的默认值问题

时间:2014-04-21 17:49:33

标签: java jsf-2 converter selectonemenu

我将selectOneMenu值绑定到字符串列表并将转换器转换为将字符串值转换为列表并将列表转换为字符串但由于未选择此值而导致出现默认值问题。

JSF代码: -

<h:selectOneMenu
        value="#{property.values}">
        <f:selectItem itemValue="" itemLabel="#{tags.select_one}"></f:selectItem>
        <f:selectItems value="#{property.enums}"></f:selectItems>
        <f:converter converterId="listConverter" />
    </h:selectOneMenu>

转换器代码: -

public class ListConverter implements Converter {

    @Override
    public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
        if (arg2 == null)
            return null;
        List<String> list = new ArrayList<String>();
        list.add(arg2);
        return list;
    }

    @Override
    public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
        if (arg2 instanceof List)
            if (!((List<String>) arg2).isEmpty())
                return ((List<String>) arg2).get(0);
            else
                return null;
        return (String) arg2;
    }

}

当列表中有值时,所选值仍然是select_one的第一个项目。

0 个答案:

没有答案