<select name="lanmu" id="lanmu">
     <logic:notEmpty name="lmlist">
<logic:iterate id="list" name="lmlist">
     <c:if test="${list.id eq newspaer.lanmuId}">
         <option value="${list.id}" selected="selected">${list.name}</option>
     </c:if>
         <option value="${list.id}">${list.name}</option>
</logic:iterate>
     </logic:notEmpty>
</select>list集合正在用logic标签迭代的存放在session里的变量lmlist的别名,
newspaper是一个实例对象,也存在session内,lanmuId是他一个属性,
现在的需求是在list迭代到某条记录时候id与newspaper的lanmuId相等的时候,
此option标记为selected.上述代码无效,求教.

解决方案 »

  1.   

    <c:if test="${list.id eq newspaer.lanmuId}">
    <option value="${list.id}" selected="selected">${list.name}</option>
    </c:if>
    id 什么类型干嘛用eq用==
      

  2.   

    <select name="lanmu" id="lanmu">
      <logic:notEmpty name="lmlist">
    <logic:iterate id="list" name="lmlist">
    <c:if test="${list.id eq newspaer.lanmuId}">
    <option value="${list.id}" selected="ture">${list.name}</option>
    </c:if> <option value="${list.id}">${list.name}</option>
    </logic:iterate>
      </logic:notEmpty>
    </select>
     
      

  3.   

    在jsp页面把${list.id},${newspaer.lanmuId}都显示出来看看
    看是否相等
      

  4.   

    实在是搞不定,直接写<%java代码%>
      

  5.   

    <select name="lanmu" id="lanmu">
      <logic:notEmpty name="lmlist">
    <logic:iterate id="list" name="lmlist">
    <option value="${list.id}"  <c:if test="${list.id eq newspaer.lanmuId}">selected="selected" </c:if>>${list.name}</option>
    </logic:iterate>
      </logic:notEmpty>
    </select>直接把selected="selected" 给<c:if>起来就可以了
      

  6.   

    将id先取出来,不要放到循环中,
    <c:set var="lanmuId" value="${newspaer.lanmuId}" />
    然后
    <c:if test="${list.id == lanmuId}">
    </c:if>
      

  7.   

    多谢大家  我自己解决了 这几天比较忙沒过来看, 方法跟6楼说的差不多,是在action里直接先拿出来lanmuId放在session里 再到页面判断. 不过还是很谢谢你.