Struts2 Iterator How To Get It To Work?
Solution 1:
The iterator tag iterates everything inside the body of the tag. No results is displayed because your iterator tag body is empty. For the iterator and other struts tags that need data to work you should populate the collection that used in the value
attribute and provide a getter for the variable.
Of course this will work if you call the action first that returns a result to the JSP. In some cases if you have a validation
and workflow
interceptors on the stack your action class should populate the collection even if no action is executed.
For example, if after submitting a form you have validation errors and input
result is returned. In this case you can make your action class to implement Preparable
and move the code tho fill the list there.
publicclassCompanyActionextendsActionSupportimplementsPreparable {
private List<Company> listAllCompanys;
//Getters and setters...public List<Company> getListAllCompanys() {
return listAllCompanys;
}
@Overridepublicvoidprepare()throws Exception {
CompanyDaoHibernatedao=newCompanyDaoHibernate();
listAllCompanys = dao.getListOfCompanies();
System.out.println("Populated listAllCompanys from " +getClass().getSimpleName()+ " size: " +listAllCompanys.size());
}
public String listAllCompanys()throws Exception {
System.out.println("The action " + ActionContext.getContext().getName()+ " is called");
return SUCCESS;
}
The Company
class should also have getters and setters.
In JSP:
<h2>Contacts</h2>
<table>
<thead>
<tr>
<th>Company's name</th>
<th>Address</th>
<th>Email</th>
<th>Website</th>
<th>Phone Number</th>
<th>Comment</th>
<th>Fax</th>
</tr>
</thead>
<tbody>
<s:iterator value="listAllCompanys">
<tr>
<td><s:property value="companyName"/></td>
<td><s:property value="address"/></td>
<td><s:property value="email"/></td>
<td><s:property value="website"/></td>
<td><s:property value="phoneNumber"/></td>
<td><s:property value="comment"/></td>
<td><s:property value="fax"/></td>
</tr>
</s:iterator>
</tbody>
</table>
Post a Comment for "Struts2 Iterator How To Get It To Work?"