在做修改页面时需要把数据结果返回到jsp页面显示
可是jsp页面中需要下拉列表,同时也要把对应的数据选中
只能使用标签不能有动态的代码

解决方案 »

  1.   

    用JSTL标签
    假如subjectList是从数据库得到的数据集,然后用forEach输出
    例:
    <select name="subject">
    <c:forEach var="subject" items="${requestScope.subjectList}">
       <option value='${subject.sid}'>
         <c:out value="${subject.name}" />
       </option>
    </c:forEach>
    </select>就是类似写个循环,只是采用了标签方式,而非脚本。对于需要把相应数据选中可以在迭代输出的过程中用
    <c:if test=""></if>进行判断。
      

  2.   

    不能使用标准标签
    只能使用struts中的<html:select></html:select>
    若按你说的那样,那这个判断该如何实现
      

  3.   

    <select name="subject">
    <!--类似Java循环-->
    <c:forEach var="subject" items="${requestScope.subjectList}">
       <!--类似if...else...-->
       <c:choose>
          <c:when test="${subject.sid==判断条件}">
            <!--选中符合条件的-->
            <option value='${subject.sid}' checked>
                <c:out value="${subject.name}" />
            </option>
          </c:when>
          <c:otherwise>
       <option value='${subject.sid}'>
                  <c:out value="${subject.name}" />
               </option>                  
           </c:otherwise>
        </c:choose>
    </c:forEach>
    </select>  不知是否理解,对于struts标签应该也类似。
    个人觉得Struts标签的可复用性不高,离开了Struts就没啥用了……
    JSTL标签更通用一些。仅供参考。
      

  4.   

     使用<html:logic> </html:logic> 
    标签进行判断
      

  5.   

    <html:select><html:option></html:option></html:select>
      

  6.   

    在 selvlet 或struts action 中
       可以定义一个字符串
        StringBuffer sbf="<select name='a'> <option value=".apend(date1).apend(">").apend(date1).apend("<option value=").apend(date2).apend(">").apend(</select>) ;
       request.setAttribute("select",sbf.toString());
    在 html 中要使用的地方用
       ${requestScope.select}  就可以了前面5楼说的也可以。