为什么我jsp里面使用javaBean老会出错?

来源:百度知道 编辑:UC知道 时间:2024/07/02 01:09:40
我想打印出我的bean中的一个字符串变量.可就是老出错,我把我的.class 放在Tomcat的classes底下了.按理说是没错的.真搞不懂是哪出错
org.apache.jasper.JasperException: Exception in JSP: /bean.jsp:14

11: <body>
12: <%@page language="java" import="myclass.*"%>
13: <jsp:useBean id="a" scope="session" class="myclass.MyClass" />
14: <%out.print(a.i);%>
15: </body>
16: </html>

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: tried to access field myclass.MyClass.i from class org.apache.jsp

帮你简单的写一个javabean+jsp吧
jsp页面

<body>
<%@page language="java" import="java.sql.*,myclass.MyClass"%>
<jsp:useBean id="mc" scope="page" class="myclass.MyClass" />
<div><jsp:getProperty name="mc" property="name" /></div>
</body>
</html>

MyClass.java

package myclass
public class MyClass
{
public String name = null;
public MyClass{

}
public void setName(String name) //set方法
{
this.name = name;
}
public String getName() //get方法
{
return name;
}
public static void main(String[] args)
{
MyClass mc = new MyClass(); //实例化
mc.setName("test"); //调用set方法赋值
}
}

你用a.i得到MyClass中的i的前提是i是public的,
否则就会出错。
如果是private String i;