我的bean类无法通过jsp引擎识别

时间:2014-07-03 18:15:58

标签: java jsp javabeans

我是jsp和beans的新手。我试图制作一个小bean示例但是得到一个jsp编译时错误如下:

Student.jsp:1:1: Needed class "find_record.StudentBean" is not found.
^
Student.jsp:4:34: The bean type "find_record.StudentBean" was not found.
<jsp:useBean id="findbean" class="find_record.StudentBean" scope="session" />
                             ^-----------------------^
Student.jsp:5:23: This bean name does not exist.
<jsp:setProperty name="findbean" property="rollno" />

我有一个Student.jsp来调用StudentBean.java但是得到了那个错误 以下是代码: Student.jsp

<html>
<body >
<jsp:useBean id="findbean" class="find_record.StudentBean" scope="session" />
<jsp:setProperty name="findbean" property="rollno" />
<%
 String status=findbean.findRecord();
  if(status.equals("success"));
%>
<jsp:include page="Success.jsp" />
<% else %>
<jsp:include page="Error.jsp" />

</body>
</html>

StudentBean.java

//StudentBean,java
package find_record;
import java.sql.*;
public class StudentBean{
String name ,rollno,grade;
int marks;
public StudentBean(){}
public void setName(String name){
     this.name=name;
     }
 public  void setRollno(String rollno){
     this.rollno=rollno;
     }
 public void setMarks(int marks){
      this.marks=marks;
     }

  public  void setGrade(String grade){
     this.grade=grade;
      }

   public String getName(){
       return(name);
      }
   public String getRollno(){
        return(rollno);
     }

    public int getMarks(){
         return(marks);
       }
    public String getGrade(){
       return(grade);
      }
     public String findRecord(){

    try{
          Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection                 conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user","password");
         Statement st=conn.createStatement();

        ResultSet rs=st.executeQuery("Select * from student where rollno="+rollno);
        int c=0;
        while(rs.next()){
      System.out.println(rs.getString(1)+"  "+rs.getString(2)+"   "+rs.getString(3)+"                "+rs.getString(4));
        c++;
                     } 
         if(c>0)
              {
                 System.out.println("success");
               return("success");
               } 
              conn.close();
                 throw new Exception("record not found");

           }catch(Exception e){
 System.out.println(e.getMessage());
  return("no record found"); 
         }
   }
 }

2 个答案:

答案 0 :(得分:0)

请参阅这篇文章here,其中介绍了如何创建JavaBean。您的类必须实现Serializable才能使其成为JavaBean(并且已分配serialVersionUID)。这允许bean被“展平”并在必要时重建。

如果这不能完全解决问题,请告诉我。您还需要确保通过使用servlet(或JSP页面中的scriptlet)将bean放入会话中。

上面没解决​​。

试试这个:

<jsp:useBean id="findbean" class="find_record.StudentBean" scope="session">
    <jsp:setProperty name="findbean" property="rollno"/>
</jsp:useBean>

答案 1 :(得分:0)

我唯一可以告诉你的代码是你不应该用“;”结束IF句子,或者事件不带括号结束......你的代码就是这样,我无法运行它,但是这样我就可以试试这个:

<%
    String status = findbean.findRecord();
    if (status.equals("success")) {
%>
<jsp:include page="Success.jsp" />
<% } else { %>
<jsp:include page="Error.jsp" />
<% } %>

对于其他一切,你第一次做得很好。祝你好运!