0

我正在尝试使用 JSP 组合框从数据库中列出值,如下所示:我的向量方法:

 public Vector getCampusCode(StudentRegistrationBean srb){
        lgcampus = srb.getLgcampus();
        Vector v = new Vector();
        Connection conn = null;
        try{
          conn =  db.getDbConnection();
          Statement st = conn.createStatement();
          String sql = "select CAMPUS_CODE from campus_master where CAMPUS_NAME = '" + lgcampus + "'";
          ResultSet rs = st.executeQuery(sql);
          while(rs.next()){
              String camp = rs.getString("CAMPUS_CODE");
              v.add(camp);
          }
        }catch(Exception asd){
            System.out.println(asd.getMessage());
        }
        return v;
    }

我的 JSP:

 <jsp:useBean id="obj1" class="com.kollega.dao.StudentRegistrationDao" scope="page"/>
 <jsp:useBean id="srb" class="com.kollega.bean.StudentRegistrationBean" scope="page"/>
 <option selected value="SELECT">SELECT</option>
                            <c:forEach var="item" items="${obj1.campusCode(srb)}">
                                <option>${item}</option>
                            </c:forEach>
                        </select>

当然,组合没有得到填充,组合之后页面上的所有其他组件都被屏蔽(消失)。如果我在没有 Where 条件的情况下删除附加到 Vector 的 bean,我的值就会被列出。但我只需要特定的值而不是全部。我怎样才能做到这一点?

4

1 回答 1

3

我只是试图填充组合框中的值,它工作得很好。请看下面的代码——JSP

<jsp:useBean id="obj1" class="com.tutorial.ComboValues" scope="page"> </jsp:useBean>
<jsp:useBean id="obj2" class="com.tutorial.Input" scope="page"> </jsp:useBean>
<select>
<option selected value="SELECT">SELECT</option>
                            <c:forEach var="item" items="${obj1.getValues(obj2)}">
                                <option>${item}</option>
                            </c:forEach>
 </select>


组合值类

public class ComboValues {
    public Vector getValues(Input i){
        Vector v = new Vector<String>();
        if(i.getInput()==0)
            v.add("worked");
        else
           v.add("it hurts");
        return v;
    }
}


输入类

public class Input {

    int value = 0;

    public void setInput(int i){
        this.value = i;
    }

    public int getInput(){
        return this.value;
    }
}

问题可能出在您传递给的引用“srb”中,StudentRegistrationDao#getCampusCode因为jsp:useBean当没有此类对象可用时,将创建该类型的新实例。要检查的另一个方面是 lgcampus = srb.getLgcampus();它是否为 where 子句返回了正确的值。希望这可以帮助

于 2013-08-24T11:35:17.443 回答