我正在 使用JSF Framework 设计电子邮件客户端系统。UI应该能够在同一个inputText字段中使用多个收件人地址,每个收件人地址之间用逗号(,)分隔。我怎样才能做到这一点?
根据评论:
可以将inputText字段的value属性分配给数组吗?
您可以Converter为此实现一个。
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;