GNUJSP的关于JSp的FAQ
---摘自《JSP爱好者》 (文/刘玉锋)
原文在:http://www.klomp.org/gnujsp/FAQ
FAQ,v 1.6 2000/09/29 17:39:28 alph Exp $
1,使用Beans
1.1Q:我想使用beans,应该放到哪目录去?
A:增加这个包含你的Beans的calsses目录到
1.zone文件,gnujsp initArgs编译定义中的"-classpath" 参数里面
2.在zone文件中增加一行语句
1.2Q:我使用了Beans,我的代码如下:
><jsp:useBean id="test" class="JspBean" scope="application" />
>
><p><%= test.getInt() %>
><p><% test.setInt(test.getInt()+1); %>
>
编译后得到了一个"NoClassDefFoundError"的错误,怎么回事情?
A:使用package!必须使用package在bean里面
package意思:
1.创建一个目录 mypkg
2.将你的bean jspbean.java放到里面
3.bean前面定义package mypkg;
4.改变jsp页面中class的属性为mypkg.jspbean
上面的例子不工作是因为你的bean使用了默认的package(也就是没有package)。在大多数java代码下面,默认
的package意味着当前的目录,但是这个概念并不能应用到jsp/servlet环境中。
2. 错误:遇到没有定义的jsp标签
Q:我将GNUJSP0.9升级到1.x后我的jsp文件出现了下面的错误
Error parsing JSP file /snoop.jsp:/snoop.jsp:4: Encountered unnamed JSP
directive.
什么原因?
A:简而言之,JSP语法从0.92版本来已经改变了,有些语法上的冲突
这个例子:
老语法:
<%@ import="java.io.File" %>
新的语法:
<%@ page import="java.io.File" %>
3. Q:升级到JDK1.2.X后出现的sun.tools.javac.Main相关的错误
> Error compiling source file: file:/www/docs/thedir/jsptest/snoop.jsp
>
> sun.tools.javac.Main
什么原因?
A: 在JDK 1.2.X里面,java编译器(sun.tools.javac.Main)位于tools.jar.
使用JDK1.2的时候你需要将{jdk_home}/lib/tools.jar放入到classpath里面