小编典典

在JSF中从inputText字段中获取多个值,并用逗号分隔

java

我正在 使用JSF Framework
设计电子邮件客户端系统。UI应该能够在同一个inputText字段中使用多个收件人地址,每个收件人地址之间用逗号(,)分隔。我怎样才能做到这一点?


阅读 280

收藏
2020-11-30

共1个答案

小编典典

根据评论:

可以将inputText字段的value属性分配给数组吗?

您可以Converter为此实现一个。

@FacesConverter("commaSeparatedFieldConverter")
public class CommaSeparatedFieldConverter implements Converter {

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value == null) {
            return null;
        }

        String[] strings = (String[]) value;
        StringBuilder builder = new StringBuilder();

        for (String string : strings) {
            if (builder.length() > 0) {
                builder.append(",");
            }

            builder.append(string);
        }

        return builder.toString();
    }

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if (value == null) {
            return null;
        }

        return value.split(",");
    }

}

如下使用它:

<h:inputText value="#{bean.addresses}" converter="commaSeparatedFieldConverter" />

private String[] addresses;
2020-11-30