0

I am designing an email client system using JSF Framework. The UI should be capable of taking multiple recipient address in the same inputText field each of which is separated by commas(,). How can i achieve this?

ThunderDragon
  • 613
  • 3
  • 13
  • 31

1 Answers1

3

As per the comments:

can i assign the value attribute of inputText field to an array?

You could implement a Converter for this.

@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(",");
    }

}

Use it as follows:

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

with

private String[] addresses;
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555