
2006-4-5 21:47
xiaoyahuihui
关于jsp使用Bean的问题
tomcat自带的猜数字例子都无法实现,请教高手指点,报错如下(运行环境:jdk1.5.0+tomcat5.5.16):
exception
org.apache.jasper.JasperException: /myWeb/number.jsp(9,0) The value for the useBean class attribute NumberGuessBean is invalid.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
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
org.apache.jasper.JasperException: /myWeb/number.jsp(9,0) The value for the useBean class attribute NumberGuessBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1174)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3304)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
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)
2006-4-6 11:37
xiaoyahuihui
怎么没有人回复啊?帮个忙吧,我很着急!
2006-4-6 13:49
xiaoyahuihui
也不知道是怎么回事,重启了机子以后猜数字页面竟然能正常显示了,只是,我自己的一个小型示范例子却还是不能显示,例子如下:
login.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>登录测试</title>
</head>
<body>
<table width="28%" border="0" align="center">
<form action="test.jsp" method="POST">
<tr>
<td colspan="2" align="center">Login</td>
</tr>
<tr>
<td width="30%">Username:</td>
<td width="70%"><input name="username" type="text" id="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="Register" /></td>
</tr>
</form>
</table>
</body>
</html>
test.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>Test</title>
</head>
<%@ page import = "userbean" %>
<body>
<jsp:useBean id="hello" class="userbean" scope="session"/>
<jsp:setProperty name="hello" property="*"/>
your username is:<jsp:getProperty name="hello" property="username"/>
<br>
your password is:<jsp:getProperty name="hello" property="password"/>
<br>
<%
out.println(hello.insert);
%>
</body>
</html>
userbean.java
import java.sql.*;
public class userbean
{
private String username;
private String password;
public void setUsername(String username)
{
this.username=username;
}
public void setPassword(String password)
{
this.password=password;
}
public String getUsername()
{
return username;
}
public String getPassword()
{
return password;
}
public String insert()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myWeb";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
//Connection dbcon=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myWeb","sa","");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="insert into userInfo(username,password) values('"+username+"','"+password+"')";
stmt.executeUpdate(sql);
return "register successfully";
}
catch(Exception e)
{
System.out.println(e);
return e.toString();
}
}
}
2006-4-7 08:59
xiaocao-x
你应该把你的bean放到WEB-INF/class下面的一个文件夹里。再引用相应的bean。
2006-4-7 16:51
xiaoyahuihui
我本来就已经把bean放在WEB-INF/classes目录下了,但是一直提示错误信息。后来我发现将.class文件直接放在WEB-INF/classes目录下,运行时会出现找不到bean的错误,如果放置在一个包下,就可以正常运行,具体因为什么我也不清楚,我认为不妨在包下也应该正常运行才对。现在问题已经解决,仍然谢谢。
2006-4-7 17:14
xiaocao-x
应该在classes下面再建一个文件夹,把你的bean放到那个文件夹里面。
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.