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

jstl嵌套下 修改的数据保持
如题:先上代码


问题:<option ${selected_str} value="${dk.id}" >${dk.name}</option>这句话

${selected_str}总说变量未定义 我之前用的if,先换成 choose 还是不行 

请高手分析一下

说明:pm_p.list得到数组,里面有一个选项是 下拉 展现的, 它的所有值

从数据库的字典表取值,即dkfs,他的每一个元素 对应一个下拉值。


<c:forEach items="${pm_p.list}" var="item_p">
<tr class="tr_data4">
  <td width="18%"><input type="text" size="20" name="projectName" value="${item_p.projectName}"></td>
  <td width="16%"><input type="text" size="20" name="projectAddress" value="${item_p.projectAddress}"></td>  
  <td width="16%"><select name="kfs" style="width:120px">
  <c:forEach items="${dkfs}" var="dk"> 
  <c:set var="selected_str"/>
  <c:choose>
<c:when test="${'item_p.dInfo.id' eq 'dk.id'}">
<c:set value="selected" var="selected_str"/>
  </c:when>
  <c:otherwise>
  <c:set value="" var="selected_str"/>
  </c:otherwise>
  </c:choose>
  <option ${selected_str} value="${dk.id}" >${dk.name}</option>
  </c:forEach>
  </select></td>
  <td width="18%"><input type="text" size="20" name="projectGet" value="${item_p.projectGet}"></td>
  <td width="16%"><input type="text" size="20" name="projectScope" value="${item_p.projectScope}"></td>
  <td width="16%"><input type="text" size="20" name="manager" value="${item_p.manager}"></td>
</tr>
</c:forEach>



------解决方案--------------------
楼主直接用三目运算符就可以搞定了,你这样容易搞错也没必要那么麻烦

直接在
HTML code

<option[color=#FF0000] ${item_p.dInfo.id == dk.id ? "selected" : ""} [/color]value="${dk.id}" >${dk.name}</option>