日期:2014-05-17  浏览次数:20753 次

struts2 iterator的困惑
我的工程代码
<select name="WorkerNo" id="WorkerNo">
            <s:iterator value="emplist" id="emp" status="st">
   <option >
        <s:property value="#emp.employeeNo" />
</option>
 </s:iterator>
                
</select>
我想写成 
<select name="WorkerNo" id="WorkerNo">
            <s:iterator value="emplist" id="emp" status="st">
   <option >
        <s:property value="st.employeeNo" />
</option>
 </s:iterator>
                
</select>
却不对,其中 emplist 是一个list,从后台传入的list,求解

------解决方案--------------------
status的 指的是你迭代的数据的索引 从1开始的 比如你的list里有3条数据 它就是 0 1 2。。你的list如果在值栈里  标签就可以直接这样<s:property value="employeeNo" />
------解决方案--------------------
可以看看常用的struts2标签的用法
------解决方案--------------------
<select name="WorkerNo" id="WorkerNo">
  <s:iterator value="emplist" status="st">
        <option >
          <s:property value="employeeNo" />
        </option>
   </s:iterator>
                
</select>
------解决方案--------------------
你想要的功能用s:select标签就能搞定

 <s:select list="emplist"  listValue="employeeNo " listKey="id "  name="WorkerNo" id="WorkerNo"
             ></s:select>   


如果你使用struts2,那么你的后台action代码应该是
方法里,
List<Employee> emplist = 你后台从数据库取出来的list列表 ;
setEmplist(emplist)
 public List<Employee> getEmpList()
{
return this.emplist;
}

public void setEmpList(List<Employee> emplist)
{
 this.emplist = emplist;
}


其中,employeeNo是你定义的Employee对象的employeeNo属性,显示在前台jsp页面的,而id是你定义的Employee对象的id属性,传到后台的,而 name="WorkerNo"是你本身的属性
------解决方案--------------------
<s:select list="#request.oqr" listKey="key" disabled="true"
listValue="value.organName" headerKey="" headerValue="--请选择--"
cssStyle="width:133px" theme="simple" name="hrEmploy.organId"
cssClass="{required:true}" />
------解决方案--------------------
引用:
引用:其实我觉得啊,能用jstl 搞定的就不要用ognl
jstl 没有 struts2 强吧? 男人是向往强大的吧
其实技术不是越强大越好,够用就好,方便快捷能完成一个项目的开发,总是好的。