jsp代码:<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<jsp:useBean class="pack.MyBean" scope="session" id="tt"/><html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        <title>JSP Page</title>
    </head>
    <body>
      <jsp:setProperty name="tt" property="bookid" value="1"/>
      <jsp:getProperty name="tt" property="bookid"/> 
      <jsp:getProperty name="tt" property="desc"/>    </body>
</html>  
  
javabean代码: package pack;import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
   public class MyBean extends Object implements Serializable {
    
 
    private String desc;
    public String getDesc() {
        return this.desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    } 
    public int bookid;
    public int getBookid() {
        return this.bookid;
    }
    public void setBookid(int bookid) {
        this.bookid = bookid;
    }
    
    
    public MyBean()  {   
       try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection conn=DriverManager.getConnection("jdbc:odbc:bookdb","","");
            Statement st=conn.createStatement();
            ResultSet rst=st.executeQuery("select * from book where bookId='"+bookid+"'");
            if(rst.next()){
            desc=rst.getString("description");
            }
            conn.close();
            
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
}
 }那里错 了 啊?请高手指教啊!     
        
      
       
    
    

解决方案 »

  1.   

    <jsp:setProperty /> 无法赋值吗? 还是什么问题 具体说清楚点
      

  2.   

    <jsp:setProperty />可以赋值,ResultSet rst=st.executeQuery("select * from book where bookId='"+bookid+"'");中bookid不能调用赋过来的值
      

  3.   

    ResultSet rst=st.executeQuery("select * from book where bookId='"+bookid+"'");
    这个是在构造函数里面在setPeoperty 之前 就被调用了 当然没有值啊
      

  4.   

    同意楼上~~~~
    你要不就再写一个方法用来取得desc,再jsp:setProperty赋值后,再调用这个方法~~~就可以取得了~~~
     public void MyBean()  {   
           try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection conn=DriverManager.getConnection("jdbc:odbc:bookdb","","");
                Statement st=conn.createStatement();
                ResultSet rst=st.executeQuery("select * from book where bookId='"+bookid+"'");
                if(rst.next()){
                desc=rst.getString("description");
                }
                conn.close();
                
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
    }
          <jsp:setProperty name="tt" property="bookid" value="1"/>
         
          <% tt.MyBean(); %>
       
          <jsp:getProperty name="tt" property="desc"/>