当前位置: 首页 > 知识库问答 >
问题:

jstl标记在jsp文件中不起作用,在tomcat 7中出错

陈项禹
2023-03-14

我在jsp文件中使用jstl标记 时遇到问题。基本上我应该把这作为两个问题,尽管他们是相关的。

在我的jsp文件中,我使用 执行一些操作。如果条件为真,则会显示一些特殊的信息

基本上, 中的内容不起作用,因为即使条件为true,也不会显示消息。

但是如果改为使用旧的命名空间,<%@taglib prefix=“c”uri=“http://java.sun.com/jstl/core”%>。其他的没有改变,则if标记正在工作,因为显示了if标记内的消息。

所以我很困惑,真的很想知道如何修复这个。

顺便说一下,我使用的是Servlet2.5、JSP2.0、JSTL1.2。我尝试将JSP2.0升级到JSP2.1,以确定是否能解决第一个问题,但我不知道如何升级jsp版本。

共有1个答案

彭胡媚
2023-03-14

但是如果改为使用旧的命名空间,<%@taglib prefix=“c”uri=“http://java.sun.com/jstl/core”%>。其他的没有改变,则if标记正在工作,因为显示了if标记内的消息。

如果在/WEB-INF/lib中有JSTL1.0的standard.jar就可能发生这种情况。把它处理掉。另请参见我们的JSTL wiki页面。顺便说一句,我假设您没有接触Tomcat和JRE自己的/lib文件夹,也没有在其中删除任何与JSTL相关的jar,或者在无意中提取了JSTL jar的内容来解决这个问题。

顺便说一下,我使用的是Servlet2.5、JSP2.0、JSTL1.2。我尝试将JSP2.0升级到JSP2.1,以确定是否能解决第一个问题,但我不知道如何升级jsp版本。我对编程很陌生。

您绝对不应该在/WEB-INF/lib中提供任何Servlet或JSP库。servlet容器(在您的例子中是Tomcat)已经随附了它。另请参见如何在Eclipse项目中导入javax.servlet API?

您只需要确保web.xml根声明符合servlet容器支持的任何内容。Tomcat7是一个与Servlet3.0兼容的容器,因此web.xml根声明应该如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <!-- Config here. -->

</web-app>
 类似资料:
  • 问题内容: 我正在开发一个与tomcat 7(7.0.27)兼容的应用程序(为tomcat 5.5开发)。我在使用jstl时遇到问题,当我指定时,只是不输出标签: 在我的WEB-INF / web.xml文件中(以前使用的是2.4版本)。 .jsp文件示例: … 而不是预期的输出,我收到: 作为文本字段中的值。 我使用JSTL 1.2.1,Tomcat 7.0.27,JSP 2.2。代码会编译,当

  • 编辑:一位评论者正确地指出,事实上,我正在处理的HTML代码都在一个标记中,这似乎对这个特定案例产生了决定性的影响。 我试图在任何级别检索元素中的所有元素。事实上,我也需要做一些额外的检查,所以我需要使用。xpath,而不是通过。标记名。但是,顺便说一句。xpath在某种程度上不起作用,即使没有检查。(当然,其他检查也会失败——我只是提供了一个最小的例子)。 我的代码: 第一行是用来调试的,以确保

  • 它给了我编译错误 cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“身份验证管理器”的声明 和在这一行找到的多个注释: null 请澄清我错在哪里

  • 问题内容: 我正在使用IntelliJ中的Google App Engine。我正在尝试在我的JSP中使用JSTL标记。我尝试了在互联网上找到的两个不同的URI,它们都给我错误: 和 它将网址变红并表示无法解析taglib。我尝试删除URL的不同部分以查看是否- 给我任何自动完成的爱,但没有运气。 我需要做些什么才能使这项工作吗? 问题答案: 确保将JSTL库jar添加到模块依赖项中。

  • 我想在jsp文档文件中使用类似的内容: 但是,在我看到的所有30个示例中,每个人都使用简单的jsp语法,而不是jsp文档语法。类似于这样: 根本不起作用。页面上看不到驻留在 /WEB-INF/tags中的所有标记文件。只有当我定义一个tld文件并在其中列出所有标记时,才能在页面上访问它们。是否可以避免tld声明并仍然在jsp文档页面中使用标记文件?

  • 我正在尝试创建一个安装在sling中的捆绑包,并使用自定义TagLib。我想使用标记文件,而不是使用扩展TagSupport的java类。这样,我可以使用Sling模型来表示JCR,使用JSP标记文件来表示标记。 这是我的标记文件,它是一个非常基本的锚,没有什么特别的,我只是想测试一下: 我创建了一个TLD文件,我在WEB-INF/tags和META-INF/tags文件夹中都尝试了该文件(我去掉