Loading...

taglibs-user@jakarta.apache.org

[Prev] Thread [Next]  |  [Prev] Date [Next]

Nesting <html:selec> with <logic:iterate> in a strut application Au-Yeung, Stella H Mon Oct 18 10:26:15 2004

Hi:
I have a struts application that allows me to update a list of employees
data.

The following is a 'desired' Update screen to update all employees
information on 'one' screen:
Employee Name   Employee Age    Department (this is a drop down)

Anderson, John  30                      a drop-down list of branch#1
departments 
Johnson, Mary   35                      a drop-down list of branch#2
departments 
Wilson   Bob    25                      a drop-down list of branch#3
departments 
------------------------------------------------------------------------

My Data Beans:
//  the department property will be populated based on the selection from
the drop-down 
// 'departmentDropDown'.  Each employee has it's unique drop-down
'departmentDropDown'. public class EmployeeDTO {
    private String name;
    private String age;
    private String department;
    private ArrayList departmentDropDown; // this list can be different for
different employees }

Public class DepartmentBean {
    private String id;
    private String dName;
}
----------------------------------------------------------------------------

My EmployeeForm:
public class EmployeeForm extends org.apache.struts.action.ActionForm
implements Serializable {
        private ArrayList listOfEmployees;  
        private EmployeeDTO employee;
        private ArrayList aDropDown; 
}
----------------------------------------------------------------------------

        
My UpdateEmployees.jsp:
<jsp:useBean id="listOfEmployees" type="java.util.Collection"
scope="session"/>

<logic:iterate id="emp" name="listOfEmployees"
type="com.myCompany.EmployeeDTO "> <tr>
    <td><html:text property="name"/></td>
    <td><html:text property="age"/></td>
    <td>
       <html:select name="emp" property="department">
        <html:options collection="emp.departmentDropDown" property="id"
labelProperty="dName"/>
       </html:select>
    </td>
</tr>
</logic:iterate>

** listOfEmployees is an ArrayList of 'EmployeeDTO' in session.
** each empoloyee's departmentDropDown has been set as an ArrayList of
'DepartmentBean'.

But when I ran I keep getting an error like this:
Cannot find bean under name emp.departmentDropDown'
javax.servlet.jsp.JspException:
 Cannot find bean under name emp.departmentDropDown at
org.apache.struts.taglib.html.OptionsTag.getIterator(....

Did I struture my <html:options> within the <logic:iterate> wrong? If it is
wrong, how do I display a <html:options> within a <logic:iterate>?   

--------------------------------------------------------------
I modiefied my JSP and tried another way but it doesn't work either:

<jsp:useBean id="listOfEmployees" type="java.util.Collection"
scope="session"/>

<logic:iterate id="emp" name="listOfEmployees"
type="com.myCompany.EmployeeDTO "> <bean:define id="aDropDown"
property="emp.departmentDropDown" <tr>
    <td><html:text property="name"/></td>
    <td><html:text property="age"/></td>
    <td>
       <html:select name="emp" property="department">
        <html:options collection="aDropDown" property="id"
labelProperty="dName"/>
       </html:select>
    </td>
</tr>
</logic:iterate>
Then I will get this error:
[ServletException in:/jsp/part/editSubsystemPart.jsp] Cannot find bean under
name aDropDown'
 javax.servlet.jsp.JspException: Cannot find bean under name aDropDown at
org.apache.struts.taglib.html.OptionsTag.getIterator(OptionsTag.java:407)
at


Any help will be appreciated...
Stella



Stella Auyeung
EDS 
Solutions Consulting, Midwest Business Acceleration Services 
Phone: 989-497-5766 (8-399)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]