首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的web应用程序找不到Struts 1- struts-taglib.jar

我的web应用程序找不到Struts 1- struts-taglib.jar
EN

Stack Overflow用户
提问于 2010-03-14 04:53:43
回答 5查看 13.5K关注 0票数 2

我正在使用Struts-1。我开发了一个基于struts的web应用程序。通过在struts-taglib.jar文件中插入以下行,我在中提供的JSP页面中使用了struts标记:

代码语言:javascript
复制
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>

现在,当我在本地系统上运行它时,应用程序运行得很好,但是当我在服务器上部署它时,它显示了以下异常:

代码语言:javascript
复制
org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-html cannot be resolved in either web.xml or the jar files deployed with this application

从上述异常来看,应用程序似乎没有找到struts-taglib.jar文件。

但是我已经将struts-taglib.jar放在了/WEB-INF/lib目录中。那问题在哪里?

注意:您也可以查看Java - Problem in deploying Web Application获得更多信息,

EN

回答 5

Stack Overflow用户

发布于 2010-03-23 01:42:51

您说JAR确实出现在web应用程序的web/lib中;我会相信您的话。

我建议您打开struts-taglib.jar,打开标记库的.tld,并验证在根目录下找到的值是否与JSP中给定前缀的uri匹配。我猜URI不匹配,这意味着即使JAR在CLASSPATH中,类加载器也找不到标记库。

它还可能指示版本更改是否使JAR和JSP中的URI不同步。

我刚刚下载了struts-1.3.10-all.zip,并查看了其中包含的struts-logic.tld。<uri>标记的值是http://struts.apache.org/tags-logic,所以看起来您还好。

.tld文件看起来像是从JAR外部化的。在.\src\el\src\main\resources\main\tld下面查找它们,将它们放在您的/ web.xml中,并在您的web.xml中显式地引用它们。这应该能帮你解决问题。

我不认为.tld在web.xml中是必要的,但是如果URI思想不顺利,您可以尝试将类似于这个示例的东西从"JSTL“添加到您的web.xml中(相应修改):

代码语言:javascript
复制
<taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>

这可能是因为Struts1.0在这一点上已经相当陈旧了。在Struts1.0开发之后,将.tld打包到taglib的JAR中成为一种常见的做法。

票数 4
EN

Stack Overflow用户

发布于 2010-03-14 04:59:02

/WEB-INF/lib在你的类路径中吗?

票数 0
EN

Stack Overflow用户

发布于 2010-03-18 10:01:01

部署之后,它实际上是/WEB/lib中的jar文件吗?如果没有,会否用手解决问题呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2441254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档