Many thanks to Omar for his advice.now a related question:
Using javax.faces.model.SelectItem objects stored in an ArrayList is what
seems to work in terms of appearance, but I was hoping that each resulting
option tag would hold the same text for the value as well as the label. How
do I do this?
My JSF looks like:
<tr:selectOneListbox required="false" label="Users"
id="userRoleSelectOneListbox">
<f:selectItems value="#{userRoleBean.options}"/>
</tr:selectOneListbox>
My bean has:
protected ArrayList<SelectItem> options = null;
.
public ArrayList<SelectItem> getOptions() {
if (this.options == null) {
this.options = new ArrayList<SelectItem>();
for (int i = 0; i < userRoles.size(); i++) {
SelectItem si = new SelectItem();
String userName = userRoles.get(i).getUserName();
si.setLabel(new String(userName));
si.setValue(new String(userName));
this.options.add(si);
}
}
return options;
}
The resulting output in HTML looks like:
<option value="0">bob</option>
<option value="1">tom</option>
<option value="2">mary</option>
<option value="3">paul</option>
<option value="4">danielle</option>
I was hoping to have the value attributes match the labels, so that it looks
like:
<option value="bob">bob</option>
<option value="tom">tom</option>
<option value="mary">mary</option>
<option value="paul">paul</option>
<option value="danielle">danielle</option>
Otherwise, how am I supposed to get the right value to be submitted in the
form?
Sorry if this seems rather elementary as in "RTFM".if you happen to know a
tutorial that shows dynamically populating a selection list, then submitting
the values to update a database table, I'd be very interested. Seems like
every example is about having a simple statically created selection list.
Many thanks,
Mike Quentel
From: Omar E
Sent: 28 April 2009 19:46
To: MyFaces Discussion
Subject: Re: dynamically populating a drop-down selection list with values
from a database
In order to populate a selectOneListBox or selectOneChoice from a database
use:
<tr:selectOneListbox value="#{bean.aValue}" required="yes">
<f:selectItems value="#{myBacking.selectList}"
</tr:selectOneListbox>
selectList should be a collection of type SelectItem.
then your backing bean selectList should have a getter and a setter.
private List<SelectItem> selectList;
{
//TODO: instanciate the list and populate the list
}
public List<SelectItem> getSelectList() {
return selectList;
}
public void setSelectList(List<SelectItem> selectList) {
this.selectList = selectList;
}
the difference between selectOneListBox and selectOneChoice that
selectOneChoice is a drop down list and selectOneListBox is a list box. take
a look at the components guide demo.
http://www.irian.at/trinidad-demo/faces/components/selectOneChoice.jspx
http://www.irian.at/trinidad-demo/faces/components/selectOneListbox.jspx
--Omar
On Apr 28, 2009, at 7:01 PM, Mike Quentel wrote:
Please, would someone direct me to an example of populating a drop-down
selection list using values from a database table query? Most examples show
hard-coded values. I'm hoping to find an example (could be another library
than Trinidad; like Tomahawk or ADF) that includes the JSP and bean.
I'm using Trinidad. Not clear what the difference is between a
selectOneListbox and a selectOneChoice.
http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_selectOneListbox.h
tml
http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_selectOneChoice.ht
ml
They both seem the same.
If I use either one of the above, does my bean need to use
CoreSelectOneListBox in order to populate the drop-down list?
http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfaces/t
rinidad/component/core/input/CoreSelectOneListbox.html
Where I'm most confused is the proper syntax in the JSP...just need a good
example.
Many thanks,
Mike Quentel