JSP配置了虚拟目录使用JavaBean报错

今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下:

The value for the useBean class attribute wp.A is invalid.

之前项目放在tomcat的webapps文件夹下,运行是正常的,现在是配置了虚拟目录,所以与javabean无关,应该是和配置了虚拟目录有关

尝试了很多方法都没用,最后找到了正确的解决方案(解决方法在最下面,如果会使用javabean的可直接跳过中间部分)

在此之前,先介绍一下在tomcat的webapps文件夹下新建项目的jsp中如何使用javabean

1.新建一个java文件,例如:

package wp;
public class A {
    private String FirstProperty = new String("");
    public A(){}

    public void setFirstProperty(String value) {
        FirstProperty = value;
    }

    public String getFirstProperty() {
        return FirstProperty;
    }
}

注意:javabean中至少要包含一个无参的构造函数

2.在项目的根目录下创建WEB-INF文件夹(区分大小写,不要写错)

3.在WEB-INF文件夹下创建classes文件夹(名称是固定的)

4.在classes文件夹下创建与java文件中对应的package后跟名称的文件夹(示例中包名为wp)

5.编译写好的java文件,将生成的.class文件放到最终的包(wp)下

6.最后在jsp文件中通过如下代码使用javabean

<jsp:useBean id="a" class="wp.A" scope="page" />

参数解释:id是为要引用的javabean起的名字,class的值即为javabean的class文件所在的位置(后面不要跟.class),scope是设置bean的有效范围(生命周期),当前设置的是仅在本页面有效

javabean的调用

通过a.setXXX("")和a.getXXX()使用javabean中定义的方法

最后,就是本篇的重点所在,关于配置了虚拟目录(不会配置的自行搜索),使用javaBean报错

很简单,就是将WEB-INF文件夹建立在所配置虚拟目录的根目录

(如果虚拟目录为D:\workspace 在此文件下创建个人项目名为Demo,通常的做法是将WEB-INF文件夹直接建立在Demo下,这是错误的,而是需要建立在workspace的根目录下)

时间: 2024-08-25 04:54:53

JSP配置了虚拟目录使用JavaBean报错的相关文章

nginx 配置web 虚拟目录 并且codeIgniter,thinkphp 重新url 地址

nginx 配置虚拟目录并且url 重写 server { #侦听80端口 listen 8090; #定义使用www.xx.com访问 server_name 127.0.0.1; #设定本虚拟主机的访问日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/lxy/www/cs/; #定义服务器的默认网站根目录位置 #默认请求 location / { index inde

Eclipse 新建.jsp页面后,页面头部标签报错的解决方法

Eclipse 新建.jsp页面后,页面头部标签报错的解决方法 1.报错地方: 2.解决方法: .jsp页面右键==>BUild Path ==>Configure Build Path... 3.接着 4.按步骤操作后.jsp页面就不会报错了 版权声明:本文为CSDN博主「爱吃狼的羊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/weixin_39890531/article/details/78

JSP里面的虚拟目录

人们常说的一个网站,其实就是一个web服务目录.Tomcat服务器安装目录的webapps目录下的任何一个子目录都可以作为一个web服务目录(当然也可以在webapps目录下新建子目录都可以). 虚拟目录: Tomcat服务器所在计算机的任何一个目录,都可以作为web服务目录,并为该web服务目录指定虚拟目录,即隐藏web服务目录的实际位置,用户只能通过虚拟目录访问wen服务目录中的JSP页面.例如:现在将E:\virtual这个目录作为web服务目录,用cloud虚拟目录来访问这个web服务目

如何配置Apache虚拟目录

Apache 配置虚拟目录是什么意思呢? 假如您现在的 Apache 配置文件(httpd.conf)中设置的访问路径为:d:myweb下,即DocumentRoot "D:/myweb".哪如何设置一个别的盘符(比如:c盘)下面的一个目录,让 Web 服务器可以去访问呢?就需要配置虚拟目录. 步骤: 配置虚拟目录就是增加一个节点,找到<IfModule>这块,加入下面的代码: # 虚拟目录,访问c盘下面的web目录 <IfModule dir_module>

log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题

我参考了下面的链接去实现,但是遇到了一些问题 参考链接: 1)http://blog.csdn.net/azheng270/article/details/2173430/ 这个链接说了如何操作的问题,但是他的log4j的配置文件感觉有问题 2)http://blog.csdn.net/cosmichut/article/details/2448159  log4j配置相对又点全 大致说一下步骤: 1.下载activation.jar和mail.jar,导入项目 2.下载log4j的压缩包文件,

进击的java - tomcat的安装,配置都正确之后,还是报错

1.问题 配置Apatch Tomcat过程报错: The CATALINA_HOME environment variable is not defined correctly.This environment variable is needed to run this program 但是“系统环境“中已经配置了,CATALINA_HOME.CATALINA_BASE.JAVA_HOME.JAVA_BASE 2.解决方案 保证CATALINA_HOME.CATALINA_BASE.JAVA

struts.convention.classes.reload配置为true,tomcat启动报错

加班ing,组长给了个现成的jee项目,导入eclipse后.启动tomcat报错,报错日志如下(由于报错信息太多,此处只截取一个样例.其他报错信息均为找不到java/util/List.class等基本java类): 1 java.io.FileNotFoundException: /home/monkey/worksrv/apache-tomcat-6.0.41/webapps/PriceSystem/WEB-INF/classes/com/opensymphony/xwork2/Actio

mysql数据库迁移目录后slave报错

使用source /sql文件 导入数据库时,文件太大导致了超时. 后面使用scp -r 拷贝整个目录过去,启动slave报错.后来写了个脚本,批量修复: #!/bin/sh/usr/local/mysql/bin/myisamchk -of ./sundiszuzx/$1/usr/local/mysql/bin/myisamchk -r ./sundiszuzx/$1/usr/local/mysql/bin/myisamchk --safe-recover ./sundiszuzx/$1 原文

Spring集成JPA配置懒加载两个报错解决办法

一:报错no session 因为entitymanager对象在事物提交后就关闭了 报错的 no session相当于sql的session 解决办法:解决办法 在web.xmL配置一个过滤器 使其在这个session中的manager在结束后再关闭open <!--配置openmanager--> <filter> <filter-name>openEntity</filter-name> <filter-class>org.springfr