Thanks Stuart, I'll change my code for anything that works!
Regards,
Alexandre Lima
----- Original Message -----
From: "Stuart Piltch" <[EMAIL PROTECTED]>
To: <user@struts.apache.org>
Sent: Monday, January 22, 2007 11:05 AM
Subject: Re: [S2] Tag select have problems
The atributte of key field is a Long. Then this is a bug because in
previously versions worked.
Hi Alexandre,
I believe this is a bug in the current Struts2 code. See
https://issues.apache.org/struts/browse/WW-1601
https://issues.apache.org/struts/browse/WW-1634
Basically, the select tag will only pre-select an item if the listKey is a
String. We have been using Integers as keys for our pulldowns (a simple
Integer-->String ArrayList), so we ran into this as well.
As a workaround, we added two methods to the business model class. These
simply
get and set the Integer attribute of the class by converting between
String and
Integer.
As a specific example, below is a snippet from our Address class, which
sometimes is used by a County pulldown in a struts2 form. The form element
itself looks like this:
<s:select name="address.countyIdStr" headerKey="" headerValue="-- Select
One--"
list="counties" listKey="id" listValue="name" required="true" />
Cheers,
- stuart
private Integer id;
private Integer city;
[...more attributes...]
private Integer countyId;
public Integer getId() { return id; }
public void setId(Integer id) {this.id = id; }
public String getCity() { return city; ]
public void setCity(String city) { this.city = city; }
[... more getters and setters ...]
public Integer getCountyId() { return countyId; }
public void setCountyId(Integer countyId) { this.countyId = countyId; }
/* Helper methods for dealing with preselecting pulldowns in struts2
* See https://issues.apache.org/struts/browse/WW-1601
*/
public getCountyIdStr() {
return countyId == null ? null : countyId.toString();
}
public void setCountyIdStr(String countyIdStr) {
if (NumberUtils.isDigits(countyIdStr)) {
countyId = new Integer(countyIdStr);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]