大家好,我的需求是:在jsp页面中每条数据后面加一个checkbox,用户自己选一些,之后点击“记录”在后台记录在一个list中,页面返回后,之前选中的checkbox要被选中,之前没有选的仍保持没有选中。
    我用的是ssh框架,用iterator进入信息遍历,可是拿不到值,代码如下:
<s:iterator value="personList1" status="status" var="personl"> 
 <td>
              <s:iterator value="personList2" status="status" var="person2">
                  <s:if test="person1.personID==person2.personID">
                        <input type="checkbox" name="personIdSelect" checked="checked" value="${personId}"/>
                  </s:if>
     </s:iterator>
 </td>
</s:iterator>问题是: <s:if test="person1.personID==person2.personID">这里拿不到对象person1的ID值进行比较

解决方案 »

  1.   

    <s:if test="${person1.personID eq person2.personID}">
    这样写看看
      

  2.   

    1楼说的不行,下面是错误信息。同样谢谢你
    org.apache.jasper.JasperException: /selectMoreResults.jsp(100,13) According to TLD or attribute directive in tag file, attribute test does not accept any expressions我的qq是593554097 希望大家加我,在qq上说方便点,谢谢
      

  3.   

    <s:if test="%{#person1.personID == #person2.personID}">
      

  4.   

    这是jstl的问题
    加上这个<%@ page isELIgnored ="true" %>看看
      

  5.   


    三楼说的可以,不过现在有个问题是:当#person1.personID == #person2.personID,就输出一个选中的checkbox,问题就来了,当没有符合的配置信息时,就要输出一个没有选中的checkbox,这个怎么判断?
      

  6.   

    <s:if test="%{#person1.personID == #person2.personID}">
    选中
    </s:if>
    <s:else>
    不选中
    </s:else>
      

  7.   


    但它是两个iterator进行循环遍历 ,即使相等了,也不会中途停下来,还会一直遍历到底
      

  8.   

    前几天有个人也提了和你类似的问题不过是jstl,我感觉不能实现,建议楼主返回JSON用js来实现吧=。=
      

  9.   

    你可以把比较放到后台完成,然后在你的list中加一个checked的属性,这样就OK了!
      

  10.   

    <input type="checkbox" name="personIdSelect" checked="checked" value="${personId}"/>
    这其中放的值有吗?应该是value="${person1.personId}"
    在后台直接resuest.getParameterValues("personIdSelect")就可以得到所有选中的吧
      

  11.   

    look my blog: http://xieruilin.javaeye.com/admin/blogs/858657