一个最简单的JSP usebean的例子,调试有错误,大家帮忙看看啊!

chaney 2004-09-27 04:11:09
有一个文件,java的编译成class。调试总是报错,麻烦各位看看。
usebean.htm
<form method="post" action="usebean.jsp">
<input type="text" name="name">

<select name="sex">
<option value="先生">先生</option>
<option value="小姐">小姐</option>
</select>

<input type="submit" name="submit" value="提交">
</form>

usebean.jsp
<%@page language="java" import="HelloBean;" %>

<jsp:useBean id="Hello" class="HelloBean" scope="request" >
<jsp:setProperty name="Hello" property="*" />
</jsp:useBean>

<html>
< %=Hello.getName()% >

< %=Hello.getSex()% >
</html>

HelloBean.java

public class HelloBean{
private String name="";
private String sex="";
public HelloBean(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setSex(String sex){
this.sex = sex;
}
public String getSex(){
return this.sex;
}
}
...全文
227 点赞 收藏 22
写回复
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaney 2004-09-29
看看啊!
回复
chaney 2004-09-28
现在在HelloBean.java前加了package abc并编译成class文件放在ROOT\WEB-INF\classes\abc目录下。
调用时<jsp:useBean id="Hello" class="HelloBean" scope="request"/>和
<jsp:useBean id="Hello" class="abc.HelloBean" scope="request"/>都试过,还不行。晕。。。
另外 libra_king(逍遥)说的:
“那么JAVABEAN文件就应该放在\ROOT\WEB-INF\classes目录下,
生成的.class文件就在ROOT\WEB-INF\classes\CN\COM\TEST下。”
JAVABEAN文件就是生成的class文件吧?程序运行时和.java的源文件无关了吧?
回复
chaney 2004-09-28
libra_king(逍遥):能说具体一些吗?我试了把class拷到ROOT\WEB-INF\classes和ROOT\WEB-INF\lib下,都不行。具体的代码怎么写?或者怎么建包哩?
回复
aoplo 2004-09-28
在你的javaBean开头加上package abc
编译后将这个javaBean放到ROOT\WEB-INF\classes\abc目录下!
另外在jsp页面中调用时<jsp:useBean id="Hello" class="HelloBean" scope="request"/>
就可以了,用的话就:Hello.getSex()。
制与<%@page language="java" import="HelloBean;" %>没必要!
回复
babap1234 2004-09-28
上面的,大哥说的正确,我前两天调试的时候遇到过,不过,为了好管理才在 ROOT\WEB-INF\classes下面建了个包。呵呵,歪打正着。
劝,兄弟不妨试一下。
回复
libra_king 2004-09-28
这个问题我以前遇到过,就是包的问题,JAVABEAN一定要放在包里,所以你在JAVABEAN里要加一个
比如package cn.com.test;
如果你的HTML和JSP文件放在\ROOT目录下,
那么JAVABEAN文件就应该放在\ROOT\WEB-INF\classes目录下,
生成的.class文件就在ROOT\WEB-INF\classes\CN\COM\TEST下。
回复
zmkun 2004-09-28
不用包也可以,直接用CLASS.TOMCAT放在你开发目录的/web-inf/classes,如果有驱动的话放在/WEB-INF/LIB下.
回复
chaney 2004-09-28
看书上的写法是说要把class文件放入指定的文件目录,但只写了weblogic的,而我用的是tomcat,应该放在哪个目录?如果要把含class文件的程序生成安装包,也必须每次安装都把class文件放入相应文件?或者是象上述的把class放入包中?如何解决?
回复
mbl 2004-09-28
up
回复
chaney 2004-09-28
licdut() ( )
把你的bean放进一个包中试试

具体怎么做啊?我初学:(


回复
naxin 2004-09-28
bean一定要有包,切切....
回复
chaney 2004-09-28
书上是有分号的,另外我试过去掉分号,但也有错
回复
dafei0320 2004-09-27
去掉分号
回复
hj821003 2004-09-27
我也感觉是分号的问题,不要那个分号试试。
回复
无欲则钢 2004-09-27
HelloBean.class要放到WEB—INF下的classes中
回复
weipj007 2004-09-27
<%@page language="java" import="HelloBean;" %>
改成
<%@page language="java" import="HelloBean" %>
去掉分号。
回复
yu145 2004-09-27
是不是分号的问题啊?
回复
tjl713 2004-09-27
你要把你的HelloBean.java
程序放入一个包中,在JSP中用的时候,<jsp:useBean id="Hello" class="包名.HelloBean" scope="request" >
回复
chaney 2004-09-27
< %=Hello.getSex()% >这里是调试时故意分隔的。可能错误还是在
<%@page language="java" import="HelloBean;" %>

<jsp:useBean id="Hello" class="HelloBean" scope="request" >
<jsp:setProperty name="Hello" property="*" />
</jsp:useBean>

下面是错误信息。

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: -1 in the jsp file: null

Generated servlet error:
[javac] Compiling 1 source file

C:\tomcat\work\Catalina\localhost\_\org\apache\jsp\usebean_jsp.java:6: '.' expected
import HelloBean;;
^
1 error


org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:553)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.

回复
zskun 2004-09-27
居然不贴错误信息,不能帮
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告