从inputText字段获取多个值,由JSF中的逗号分隔

问题描述:

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

+0

最直接的方法是简单地解析收件人地址输入字符串得到你想要的东西。 –

+0

我可以将* inputText *字段的值属性赋值给一个数组吗? – JohnC

作为每评价:

我可以inputText字段的值属性分配给数组?

您可以为此执行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;