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?
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']}" />