[
https://jira.jboss.org/jira/browse/RF-4293?page=com.atlassian.jira.plugin...
]
Pappy Razvan STANESCU commented on RF-4293:
-------------------------------------------
I think the confusion is caused by the design of the component, I can see two issues
here:
1. the component is filled in using SelectItem[s], and any developer expects that
"itemValue" and "itemLabel" to be used as in any other selection
component
2. the renderer wrongly assumes that the item class is always a string - although it calls
toString() - therefore it ignores "itemValue" and "itemLabel"; why not
simply use a list of strings or objects in this case?
To add or to set a value the component could invoke a method of a backing bean, e.g.
"void createItem(String)" whose purpose would be to create a new SelectItem (and
a new java.lang.Object) and add it to the items list. It is not necessarily the best
approach, but this will keep everything consistent.
If we could vote, I'd vote for a bug.
comboBox: using component with s:convertEntity leads to displaying id
list instead of object property in label for s:selectItems.
---------------------------------------------------------------------------------------------------------------------------------
Key: RF-4293
URL:
https://jira.jboss.org/jira/browse/RF-4293
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.2
Environment: jboss 4.2.1.GA, seam 2.0.2, richfaces 3.2.2.BETA5(IE6, IE7, FF 3.1,
Safari 3.1, Opera 9.51)
Reporter: Mikhail Vitenkov
Assignee: Mikhail Vitenkov
#1. Create "Car" entity with two attributes("id" &
"name") following way:
@Entity(name="car")
public class Car {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Car(int id){
this.id = id;
this.name = "name_" + id;
}
@Id
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
#2. Add rich:comboBox on the page.
<rich:comboBox id="lstIndustry1" defaultLabel="Select your
industry">
<s:selectItems value="#{combobox.selectItems}" var="ind"
label="#{ind.name}"/>
<s:convertEntity />
</rich:comboBox>
selectItems is ArrayList<Car> defined in "combobox" bean:
private ArrayList<Car> selectItems;
public Combobox(){
this.selectItems = new ArrayList<Car>();
for(int i = 0; i < 100; i++){
selectItems.add(new Car(i));
}
}
#3. Naviagate on the page, contained rich:comboBox.
#4. Open component's pop up list & verify items' labels.
Actual behavior:
Instead of Car's "name" property list fo ids displayed. Replace
rich:comboBox with h:selectOneMenu - everything works fine.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira