如何获取数据库值并在下拉列表中显示所选值

时间:2014-04-23 15:31:32

标签: jsp

表单有两个字段 1个文本字段(例如,它是学生ID)和1个下拉列表(cate_id)(其余的不必要的讨论)

一旦页面加载,Dropdownlist值就来自db。

当我根据学生ID提交jsp页面时,我会将学生对象返回到同一个jsp页面,并且必须在表单字段中呈现对象值。

我面临的问题是,当我提交页面时,它没有在下拉列表中显示学生的cate_id。(显示所有cate_id)

示例:

学生已在文本字段中输入100,其相应的类别ID(例如,新鲜,研究生或初级等)应显示在下拉列表中,而不是数据库中的所有值。

这是我的代码。

/ *

  <sql:setDataSource driver="sun.jdbc.odbc.JdbcOdbcDriver"
               url="jdbc:odbc:lab"
               var="localSource" 
               />

 <sql:query dataSource="${localSource}" 
       sql="select cate_id,cate_desc from category"
       var="result" />
 <select name="cate_id">
 <c:forEach items="${result.rows}" var="r">
    <c:choose>
    <c:when test="${r.cate_id eq a }"> // I got a value from request.getattribute
    <option value="${r.cate_id}" selected="selected">${r.cate_desc}</option>
    </c:when>
  <c:otherwise>
  <option value="${r.cate_id}">${r.cate_desc}</option>
  </c:otherwise>
   </c:choose>
   </c:forEach>
   </select>

1 个答案:

答案 0 :(得分:0)

范围是这里的问题

 <c:when test="${r.cate_id eq a }">

 I havent created usebean variable earlier.
  just created variable with name a  in scriptlet.

  Created usebean variable. It is working now

 <jsp:useBean id="student" class="student.Student" scope="application"/>


 In dropdownlist code modified as


<c:when test="${r.cate_id eq student.cate_id}">