<s:iterator var="temp" value="#request.list">
  ${temp.tradName}
 <input type="checkbox" name="trad" value="${temp.tradId }" 
<s:iterator var="t" value="#request.roles.trads">
<s:if test="#t==#temp.tradName"> 
checked="checked"
</s:if>
         </s:iterator>
/>
<br>
</s:iterator>struts2后台传了两个对象,一个是list一个是roles,但是roles.trads属性里存的是[用户删除,用户修改,用户查询]hibernate级联查询的。怎样用struts2标签判断list.tradName里面的每一个值与roles.trads相等?我上面写的不行

解决方案 »

  1.   

    没用过struts2,你不要用==,用equals试试,#t.equals(#temp.tradName)
      

  2.   

    <s:if test="%{tradName==#temp.tradName}"> 
      

  3.   

    那就实验下和EL语言的<c:if>嵌套下,看能用不?
      

  4.   

    还是不行,乱七八糟的都试过了就是不行,Roles.trads属性里存的是[用户删除,用户修改,用户查询]是一个set数组,怎样把set数组循环出来和list.tradName比较呢?
      

  5.   

    自己解决<s:if test="#request.roles.trads.toString().contains(#temp.tradName)"> 
         checked="checked"
    </s:if>