You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Stephen de Vries <st...@twisteddelight.org> on 2007/10/22 00:19:44 UTC

How to use multi select or checkboxlist in Struts 2

Hi,

I'm having a problem using a checkboxlist to update a list in my  
model and can't find any example of using checkboxlist on the web.   
Displaying the checkboxes works fine, but not saving their values to  
the model.  And I'm not exactly clear on how the checkboxlist does  
the conversion from string to my defined type.  Project uses spring  
2, hibernate and JPA:

@Entity
public class Recipient {
	private Long id;
	private List<Profile> profiles = new ArrayList<Profile>();

	public List<Profile> getProfiles() {
		return profiles;
	}
...
@Entity
public class Profile {
	private Long id;
	private String name;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Long getId() {
		return id;
	}

...

public class RecipientAction extends BaseAction implements Preparable {
     private List<Profile> allProfiles;
     private Recipient recipient;
     private Long  id;

     public String save() throws Exception {
         boolean isNew = (recipient.getId() == null);
         recipientManager.save(recipient);

         String key = (isNew) ? "recipient.added" : "recipient.updated";
         saveMessage(getText(key));

         if (!isNew) {
             return INPUT;
         } else {
             return SUCCESS;
         }
     }
...

recipientForm.jsp:

<s:checkboxlist list="allProfiles" listKey="id" listValue="name"  
label="Profiles"  name="recipient.profiles"/>

When executing recipientManager.save(recipient); the application  
throws the exception:

org.hibernate.PropertyAccessException: IllegalArgumentException  
occurred calling getter of com.corsaire.contactn.model.Profile.id
...
Caused by: java.lang.IllegalArgumentException: object is not an  
instance of declaring class

Any ideas as to what's wrong?  Do I need to provide an explicit  
conversion from Strings to List<Profile>?

regards,
Stephen



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org