Search code examples
comboboxseamtextinputparameterized

SEAM Parametrized inputtext


I have a problem with <h:inputText>. In particular I have a series of inputtext, combobox, calendar on an xhtml page.

Each of them has the value attribute like follow value="#{myBean.first}", value="#{myBean.second}", and so on.

In this manner myBean must have an enormous number of setter and getter. I need to use only one setter and only one getter like the following:

public void setValue(String theId, String theValue){}
public String getValue(String theId){}

So in these only two methods I use a Map with key=theId and value=theValue inserted by user.

My question is how can do this in xhtml page?
That's how value-tag would be? Is there a special notice for passing a parameter to setter/getter?

Note that the "parameter" added to the inputText could be an object.

How can I do?


Solution

  • If you want to store the key/value pairs in a Map, you can reference the map directly in your UI components. Say your backing bean has this:

    public Map<String, Object> getDataMap() { return dataMap; }
    public void setDataMap(Map<String,Object> dataMap) { this.dataMap = dataMap; }
    

    Your xhtml could look like this:

    <h:inputText value="#{myBean.dataMap['first']}" />
    
    <h:inputText value="#{myBean.dataMap['second']}" />