在JSP Java中将变量传递给方法

在JSP Java中将变量传递给方法,java,jsp,Java,Jsp,我有一个向量方法,它将值从数据库返回到JSP组合框。该方法具有存储在会话中的输入变量字符串。我需要将会话中的值传递给JSP中的方法调用,但我没有从数据库中获取值。以下是我的方法: public Vector getHostel(String campus) throws IOException{ Vector v = new Vector(); Connection conn; try{ conn = db.getDbConnection(); Stri

我有一个向量方法,它将值从数据库返回到JSP组合框。该方法具有存储在会话中的输入变量字符串。我需要将会话中的值传递给JSP中的方法调用,但我没有从数据库中获取值。以下是我的方法:

public Vector getHostel(String campus) throws IOException{
   Vector v = new Vector();
   Connection conn;
    try{
     conn =  db.getDbConnection();
     String sql = "select * from hostel_master where campus_code = ?";
     PreparedStatement ps = conn.prepareStatement(sql);
     ps.setString(1, campus);
     ResultSet rs = ps.executeQuery();
       while(rs.next()){
         String host = rs.getString(1);
         v.add(host)
       }
    }catch(Exception asd){
      System.out.println(asd.getMessage());
    }
    return v;
}
和我的JSP文件摘录:

<jsp:useBean id = "obj" class="com.app.dao.HostelsDao" scope = "page"/>
<% String campus = (String)session.getAttribute("campus_code");%> <%-- I really hate this --%>

<option selected value = "SELECT">SELECT</option>
<c:forEach var = "item" items = "${obj.getHostel(campus)}">
<option>${item}</option>
</c:forEach>

挑选
${item}

我没有在我的选择列表中得到任何东西,但是当我直接传递值时,我得到了正确的输出。我需要根据会话中的校园代码值更改此值。请提供帮助。

在DAO中,您可以为校园代码设置类属性和setter,而不是调用对象getHostel(校园)

然后可以在useBean标记后使用
设置值。然后,您只需将DAO方法getHostel(campus)更改为一个简单的getter
getHostels()
,可以使用
${obj.hostels}
访问它


会话可以在JSTL中用隐式会话对象访问:<代码> ${session } /COD>。因此,您应该能够执行<代码> ${Session .CopuSuleCord} < /C>或<代码> $session(CopuSuxCal码)} /Cuth>而不是使用Script。

“CuxUsCuthOrth= =”将考虑输入的情况。确保“校园代码”列中有值“校园”。这是不正确的。为什么我需要在“校园代码”列中有值“校园”?对于不同的校园,我有其他的值。Tat只是我给出的一个例子。不需要使用任何Scriplet,只需删除它,然后尝试使用
${obj.getHostel(campus_code)}
而不是
${obj.getHostel(campus)}
来查看每个范围。在调用此JSP页面之前,请确保该值作为属性存储在会话中。希望您能够调试并检查从会话检索的校园代码的值是否为空/null。