0

次のような JSP コンボボックスを使用して、データベースから値をリストしようとしています: My Vector Method:

 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>


ComboValues クラス

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;
    }
}

使用可能なオブジェクトがない場合、そのタイプの新しいインスタンスが作成されるため、StudentRegistrationDao#getCampusCode渡している参照 'srb' に問題がある可能性があります。jsp:useBeanチェックするもう 1 つの領域は lgcampus = srb.getLgcampus();、where 句に対して適切な値を返すかどうかです。お役に立てれば

于 2013-08-24T11:35:17.443 に答える