[JAVA web]JAVA目录结构,Cannot find the tag library descriptor

一、首先一定一定强调

环境很重要!!!

折腾了很长时间发现环境不对就是配不出来,比如javashop2.4和tomcat7不兼容


二、转自:http://blog.csdn.net/indieinside/article/details/7740085

Java web工程下的webapp或WebContent就是工程的发布文件夹,发布时会把该文件夹发布到tomcat的webapps里。

开发时classes文件存放路径:

buildpath:在eclipse中项目的右键java build path-source中指定工程中class文件的编译路径,一般为:test/build/classes。(test是工程名)

发布时classes文件存放路径:

发布到tomcat时(在eclipse里启动tomcat),src文件夹里的java文件经过编译后,会把.class文件放在WEB-INF文件夹里的classes文件夹中。

有一些配置文件需要放到WEB-INF的classes文件夹下,所以,通常的做法是手动在工程的WEB-INF文件夹下建立classes文件夹。如果不在工程的WEB-INF下手动建立classes,发布到tomcat时tomcat里的WEB-INF中也会有classes文件夹。

关于jar

【Web App Libraries】 一般是指向web工程的 WEB-INF/lib下的包(可以将包copy到此目录下 然后刷新工程 加入的包一般可以自动找到 如果找不到 右键|Properties |Java Build Path|Libraries |Add JARs 可以加入)

build path中add jar可以引用工程文件夹以外的jar,如果引用了工程以外的jar,在.classpath文件中会添加(如java的jar包jre和tomcat的jar包):
    <classpathentry kind="lib" path="D:/workspace/ojdbc14.jar"/>
web-info/lib中的jar不会往.classpath文件中会添加, 其余两者没有区别,编译的时候先找classpath中的jar如果没有则找web-info/lib中的jar。

web工程参照了很多文件,因此发布的时候要打成war包,使其变成单独的个体,放到web容器里。
开发环境中eclise会将工程打包放到tomcat下,进行关联。

工程目录:

发布后的tomcat目录:


就是说,部署到tomcat后,项目的根下有三个东西:jsp文件夹,META-INF,WEB-INF

src下的java文件最后成了classes,部署在tomcat WEB-INF classes目录下,除了classes外,web-inf下还有各种jar包

原来Webcontent下的jsp文件到了项目根目录下。


这是我的项目目录:



就是说,要生成class的java文件可以和src目录并列。其包名是不包含src这层的,例如base下的一个包package=com.aaa.bbb,而不是base.com.aaa。base为source folder

而struts.xml之类的就一定要在src下了。

如我今天遇到一个问题:

Cannot find the tag library descriptor for /struts-tags  

其原因可能是:

1、struts.xml 没有正确放置,将struts.xml 放到src目录下,redeploy
2、没有正确导入struts库,把struts2相关的几个lib放在你(tomcat中)工程的WEB-INF/lib下面就可以了
3、<%@taglib prefix="s" uri="/struts-tags"%> 有特殊字符 ,删掉重写(^_^)


我直接导入的项目,原因只可能是一,而struts,xml被我放在了resource下,它也是一个source folder,但不能使用

重建项目后,把xml放到了src下,不但解决了这个问题,还结局了protolog不能访问什么乱七八糟的xml奇葩问题。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值