java - 将变量传递给 JSP Java 中的方法

标签 java jsp

我有一个 vector 方法,它将值从数据库返回到 JSP 组合框。该方法有一个存储在 session 中的输入变量字符串。我需要将 session 中的值传递到 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>

我的选择列表中没有得到任何内容,但是当我直接传递值时,我得到了正确的输出。我需要该值根据 session 中的 Campus_code 值而变化。请帮忙。

最佳答案

而不是 EL 调用 obj.getHostel(campus) ,在您的 DAO 中,您可以拥有 Campus_code 的类属性和 setter 。

然后您可以使用 <c:set target="${obj}" property="campusCode"> 设置该值在 useBean 标签之后。然后,您只需将 DAO 方法 getHostel(campus) 更改为简单的 getter getHostels()可以通过 ${obj.hostels} 访问。

可以使用隐式 session 对象在 JSTL 中访问 session :${session}所以你应该能够做 ${session.campus_code}${session["campus_code"]}而不是使用 scriptlet。

关于java - 将变量传递给 JSP Java 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913144/

相关文章:

java - Json对象不显示在jsp中

java - 如何在 GUI 上获取主板序列号(在 Java 中)

java - 无法将 json 字符串解析为通用 java 对象

java - Mockito 可以使用参数构造函数初始化模拟对象吗?

java - ejb3端点Web服务jboss 7抛出非法状态异常

java - 如何从 catalina.properties 获取值到 jsp

javascript - 停止在jsp中将 "<"转换为 "&lt;"

java.lang.IllegalStateException : Cannot call sendRedirect() after the response has been committed 错误

jsp - pageContext.request.userPrincipal 是否存储在 session 中?我也能得到密码吗?

java - 如何从 JSTL 转换为字符串?