ThunderDragon
ThunderDragon

Reputation: 627

taking multiple values from inputText field separated by commas in JSF

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?

Upvotes: 0

Views: 2505

Answers (1)

BalusC
BalusC

Reputation: 1108852

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;

Upvotes: 3

Related Questions