<table>
<s:iterator value="#request.courseList"> <tr><td><s:property value="name"/></td> <td><s:select list="#request.teacherList"   listKey="id" listValue="name" theme="simple"></s:select></td></tr>
</s:iterator>
</table>刚开始学习struts,请教各位大神,如何在多个select中设置name属性?

解决方案 »

  1.   

    将上课老师和上课频率传递到action中
      

  2.   

    上课老师和上课频率是否是一个javaBean的属性?
      

  3.   

    是的话可以直接存成List<Bean> list的形式。
    不是的话就用两个List<String> teacherNames;//存老师名称 List frequencyList;//存对应的上课名称
    setter gettter.....
    在jsp页面<table> 
    <s:iterator value="#request.courseList"> 
        <tr><td><s:property value="name"/></td>
    <td>
    <s:select list="#request.teacherList"   listKey="id" listValue="name" name="teacherNames" theme="simple"></s:select><!--老师名称-->
    </td>
    <td><input name="frequencyList" /></td><!--上课频率-->
    </tr> 
    </s:iterator> 
    </table>
      

  4.   

    struts2会把name属性相同的表单元素存成一个List或数组
      

  5.   

    在同一个bean中,进入了action中对应的setter方法,但list的长度为零0.
      

  6.   

    用两个list的方法可以实现,但不明白为放在一个bean中的时候,无法得到
      

  7.   

    如果是同一个bean的话,用ognl一样能实现。只不过要指定list的脚标。
    例如action中定义List<Teacher> list;setter getter;
    Teacher中有name代表名称,rate代表频率
    那么页面就要这么写了<table>  <s:iterator value="#request.courseList" status="st">      
    <tr><td><s:property value="name"/></td> 
    <td> 
    <s:select list="#request.teacherList"   listKey="id" listValue="name" name="list[${st.index}].name" theme="simple"></s:select><!--老师名称--></td>
     <td><input name="list[${st.index}].rate" /></td><!--上课频率-->
    </tr> 
    </s:iterator>  
    </table>