我正在使用JSF Framework设计电子邮件客户端系统 。 UI应该能够在相同的inputText字段中获取多个收件人地址,每个字段用逗号(,)分隔。 我怎样才能实现这一目标?
答案 0 :(得分:3)
根据评论:
我可以将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;