如果struts 2响应中的测试是一个arraylist类型,字段名称是动态的,如何使用

时间:2014-05-22 08:57:54

标签: struts2

我能够完美地迭代数组列表,但是我必须测试dept代码(deptc)是否与某些条件匹配并执行相应的操作:

<s:iterator value="deptAttendace" status="stat"> 
    <s:text name="%{'deptAttendace['+#stat.index+'].deptc'}"/> 
</s:iterator>

<s:if test= "%{#deptAttendace['+#stat.index+'].deptc=='804'}">
    <s:text   name="%{'deptAttendace['+#stat.index+'].deptc'}"/> 
    is computer science deptc 
</s:if>

我已经编写了上面的代码,但这不起作用。

2 个答案:

答案 0 :(得分:0)

  1. 你需要把s:if放在迭代器里面;
  2. stat.index的连接错误;
  3. 删除deptAttendace前面的#
  4. <s:iterator value="deptAttendace" status="stat"> 
        <s:text name="deptAttendace[%{#stat.index}].deptc}" /> 
    
        <s:if test="%{deptAttendace[#stat.index].deptc=='804'}">
            is computer science deptc 
        </s:if>
    </s:iterator>
    

    有几种方法可以访问迭代对象 read them here

答案 1 :(得分:0)

尝试这个,

<s:iterator value="deptAttendace" status="stat"> 
 <s:text name="deptAttendace.get(#stat.index).getDeptc()"/> 
</s:iterator>

<s:if test= "deptAttendace.get(#stat.index).getDeptc()=='804'}">
<s:text   name="deptAttendace.get(#stat.index).getDeptc()"/> 
is computer science deptc 
</s:if>