Struts2 Populating Checkbox from Arraylist of Objects
- by user2972139
I'm sure that I'm doing something dumb but I've been going craze over the last couple of days trying to get my checkboxes filled out inside an iterator that goes over an arraylist of object.
Here is my object:
public class EmailObject {
int emailId;
String emailAddress;
public int getEmailId() {
return emailId;
}
public void setEmailId(int emailId) {
this.emailId = emailId;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
In my action class, I create an arraylist of the above EmailObjects.
On my jsp page, I can get checkboxes through a checkboxlist (but this isn't good for me because I want it to be vertical and don't want to mess with the struts styles)
<s:checkboxlist name="selectedEmails" list="userEmails" listValue="emailAddress" listKey="emailId" />
I can also iterate over the arraylist userEmails and display the values:
<s:iterator value="userEmails" var="thisEmailData">
<s:property value="emailId"/>
<s:property value="emailAddress"/>
</s:iterator>
But I can't get it to display the emailId when iterating over the arraylist userEmails. I tried all of these:
<s:iterator value="userEmails" var="thisEmailData">
<tr><td><s:property value="emailId"/></td></tr>
<tr><td>
<s:checkbox fieldValue="%{#emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="#emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="thisEmailData.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="userEmails.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="#thisEmailData.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="#userEmails.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="%{#thisEmailData.emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="%{#userEmails.emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox fieldValue="emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="%{#emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="#emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="thisEmailData.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="userEmails.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="#thisEmailData.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="#userEmails.emailId" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="%{#thisEmailData.emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="%{#userEmails.emailId}" name="emailAddressesCB" theme="simple" ></s:checkbox>
<s:checkbox value="emailId" name="emailAddressesCB" theme="simple" >
</s:checkbox>
<s:property value="emailAddress"/>
</td></tr>
</s:iterator>
</td></tr>
</s:iterator>
From the above, the value field is never filled with the value of the emailId.
I know I'm missing something basic. What is it?
THANK YOU.