小弟最近在做学校管理系统,通过action获取的考试的对象exam,从exam获取到班级对象class,然后再有班级获取班级所有的学生集合,即Set<Students> set=class.getStudents();这样将这个set传到前台JSP页面时,通过
<s:iterator>标签遍历班级中的学生,每个学生一行,我想在每个学生后面加一个text控件来填写学生的考试成绩,但不知道如何在action中接收每个学生的成绩。解释比较粗糙,望大哥们给点意见,谢谢啊,我想在今晚把这功能实现,第一次做管理系统,谢谢大家!!!

解决方案 »

  1.   

    你提的需求,说实话我看的不是很懂,但是从问题上看,javabean适合做
      

  2.   

    最好别用set集合,set集合里的数据是变的,不好操作。
      

  3.   

    <s:iterator value="list" status="v" >
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].colora" id="list[<s:property value="#v.index"/>].colora" maxlength="100"   value="<s:property value="colora"/>"  readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].colorb" id="list[<s:property value="#v.index"/>].colorb" maxlength="100"   value="<s:property value="colorb"/>"   readonly="readonly" />
    </td>
    <td><input type="text" size='1'  name="list[<s:property value="#v.index"/>].densityB" id="list[<s:property value="#v.index"/>].densityB" maxlength="100"   value="<s:property value="densityB"/>"   readonly="readonly" />
    </td>
    <td><input type="text" size='1'  name="list[<s:property value="#v.index"/>].densityC" id="list[<s:property value="#v.index"/>].densityC" maxlength="100"   value="<s:property value="densityC"/>"  readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].densityM" id="list[<s:property value="#v.index"/>].densityM" maxlength="100"   value="<s:property value="densityM"/>"   readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].densityY" id="list[<s:property value="#v.index"/>].densityY" maxlength="100"   value="<s:property value="densityY"/>" readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].rubL" id="list[<s:property value="#v.index"/>].rubL" maxlength="100"  value="<s:property value="rubL"/>"   readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].rubM" id="list[<s:property value="#v.index"/>].rubM" maxlength="100"   value="<s:property value="rubM"/>"   readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].rubR" id="list[<s:property value="#v.index"/>].rubR" maxlength="100"   value="<s:property value="rubR"/>"   readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].bar2" id="list[<s:property value="#v.index"/>].bar2" maxlength="100"  value="<s:property value="bar2"/>"   readonly="readonly" />
    </td>
    <td><input type="text" size='1'  name="list[<s:property value="#v.index"/>].bar3" id="list[<s:property value="#v.index"/>].bar3" maxlength="100"   value="<s:property value="bar3"/>"   readonly="readonly" />
    </td>
    <td>
    <input type="text" size='1'  name="list[<s:property value="#v.index"/>].bar4" id="list[<s:property value="#v.index"/>].bar4" maxlength="100"  value="<s:property value="bar4"/>"   readonly="readonly" />
    </td>
    <td>&nbsp;</td>
    </tr>
    </s:if>
    </s:iterator>
      

  4.   

    说下我想的简单方法吧,
    通过Jquery循环取值,一行一行取,
    取到学生的ID和成绩,拼成这样  id:score,id:score
    到后台去split循环数组。就可以得到了。
      

  5.   

    我其实是取出学生,然后在每个学生后面加个TEXT用来添加每个学生的成绩,然后在action中取出,和感谢各位大哥赐教,我先去睡一会,回来再逐个实验下!
      

  6.   

    就和checkbox一样,直接用数组接就可以,或者用js将所有成绩拼成一个字符串传给action
      

  7.   

    每一行的相同元素的name属性设成相同的,form提交,后台用request的getparameters方法获取后for循环塞进bean里面。。
      

  8.   

    如果是表单提交修改,这样效率不高啊,因为假如你修改一个数据,但是你提交的是一组记录都需要执行更新语句,岂不是效率很低,你的问题是可以实现的,但效率欠佳。
    建议使用异步调用方法来修改数据,加上json就更好区别了,只要的每一个text框添加一方法将studentId和score传进去,再通过ajax和后台交互,实现异步调用。
      

  9.   

    用<s:property value="">struts2标签要用到OGNL
    其实用直接用JSTL中的<c:forEach>比较简单,出错的可能性小。