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

无法处理与jstl相关的Jasper验证错误

裴昊阳
2023-03-14

我已经将JSTL-1.2.jar添加到项目设置->libraries和war:爆炸->WEB-INF/lib中。我还尝试删除依赖项并设置不同的版本。如果我同时删除<%@taglib%>fmt和c声明,page可以工作(至少不会导致服务器500错误)。

JSP:

{<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html lang="${param.lang}">
<fmt:setLocale value="${param.lang}"/>
<fmt:bundle basename="message"/>
<head>
    <title>Book list</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"/>
    <link rel="stylesheet" href="WEB-INF/css/base.css"/>

</head>
<body>
<header>
    <div class="row" id="lang">
        <div class="col-2 justify-content-start" id="appName">Library app</div>
        <div class="col-6"></div>
        <div class="col-2 justify-content-end">
            <p id="langLabel">Choose language:</p>
        </div>
        <div class="col-1 justify-content-center">
            <a href="?lang=ua"><img src="../WEB-INF/images/uaFlag.jpg" alt="ua"/></a>
            <a href="?lang=en"><img src="../WEB-INF/images/gbFlag.svg" alt="en"/></a>
        </div>
        <div class="col-1">
            <form action="${pageContext.request.contextPath}/logout"  id="logoutForm">
                <button type="submit" id="logoutButton">Logout</button>
            </form>
        </div>
    </div>

</header>

<div class="row" id="contentDiv">
    <div class="content contentFirstBlock col-7 justify-content-center">
        <div id="addbookFormBlock">
            <form id="addbookForm">
                <fmt:message key="input.addbook.bookName" var="bookName"/>
                <fmt:message key="input.addbook.bookGenre" var="bookGenre"/>
                <fmt:message key="input.addbook.bookIsbn" var="bookIsbn"/>
                <fmt:message key="input.addbook.bookYearPublished" var="bookYearPublished"/>
                <fmt:message key="input.addbook.submitAddBook" var="submitAddBook"/>

                <label for="bookName">${bookName}</label><input type="text" id="bookName" name="bookName" autocomplete="off" required="required"/><br/>
                <label for="bookGenre">${bookGenre}</label><input type="text" id="bookGenre" name="bookGenre" autocomplete="off" required="required"/><br/>
                <label for="bookIsbn">${bookIsbn}</label><input type="text" id="bookIsbn" name="bookIsbn" autocomplete="off" required="required"/><br/>
                <label for="bookYearPublished">${bookYearPublished}</label><input type="text" id="bookYearPublished" name="bookYearPublished" autocomplete="off" required="required"/><br/>
                <input type="submit" id="submitAddButton" name="submitBook" value="${submitAddBook}"/>

            </form>
        </div>
    </div>

    <div class="content contentSecondBlock col-5">
        <p>Sample</p>
        <table>
            <tr>
                <td>Select</td>
                <td>Author id</td>
                <td>Author first name</td>
                <td>Author last name</td>
            </tr>
            <c:forEach items="${authors}" var="author">
                <tr>
                    <td><input type="checkbox" name="aths" value="${author.getAuthorId()}"/></td>
                    <td>${author.getAuthorId()}</td>
                    <td>${author.getAuthorFirstName()}</td>
                    <td>${author.getAuthorLastName()}</td>
                </tr>
            </c:forEach>
        </table>
    </div>
</div>

<footer>footer</footer>
</body>
</html>} 

依赖关系

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.4</version>
      <scope>provided</scope>
  </dependency>

  <!-- https://mvnrepository.com/artifact/taglibs/standard -->
  <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/javax.el/el-api -->

  <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
  </dependency>

  <!-- mySql connector -->

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.16</version>
</dependency>

最近的一组错误:

错误:Jasper验证器:绝对URI:http://java.sun.com/jsp/jstl/fmt无法在web.xml或与此应用程序一起部署的jar文件中解析

错误:Jasper验证器:org.apache.jasper.JasperException:java.lang.NullPointerException;

我以前犯过的错误:

错误:Jasper Validator:来自TagLibraryValidator的验证错误消息,用于/admin/addbook.jsp null:org.xml.sax.saxParseException;亚麻编号:784;专栏编号:8;在CDATA节中发现无效的XML字符(Unicode:0x0)。来自TagLibraryValidator的验证错误消息,用于/admin/addbook.jsp null:org.xml.sax.saxParseException;亚麻编号:784;专栏编号:8;在CDATA节中发现无效的XML字符(Unicode:0x0)。

共有1个答案

柯乐池
2023-03-14

好吧,我已经解决了这个问题,也许这会帮助到某人。

依赖关系:

    <dependencies>
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
      </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
      </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.16</version>
    </dependency>

  </dependencies>

我只是将代码从jsp复制到另一个空jsp文件,并删除了第一个。之后(以及修改依赖项)验证将成功通过。此外,我删除了WEB-INF/lib中的所有jar,并将jstl-1.2.jar添加到tomcat/lib文件夹中(我不知道是否需要,但如果代码仍然坏了,可以尝试一下)。

 类似资料:
  • 据说比monad更强大,因为它可以累积错误。 有没有什么场合你可能会选择< code>Try而不是< code>scalaz。验证或< code>scalaz。\/?

  • 问题内容: 我在用于通过Gmail发送电子邮件的简单脚本中使用PHPMailer,但遇到“未知错误”(至少对我来说!): SMTP错误:无法验证。错误:SMTP错误:无法验证。 SMTP服务器错误:5.7.1不接受用户名和密码。要了解更多信息,请访问535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm24

  • 我正在学习使用DDD、CQRS和ES开发微服务。这是HTTP RESTful服务。微服务是关于在线商店的。有几个域,如产品、订单、供应商、客户等。域内置在单独的服务中。如果命令有效负载与其他域相关,如何进行验证? 例如,这里是订单服务(命令端)中的addOrderItemCommand负载。 如何验证上面的命令?如何知道客户真的存在于数据库中(查询端客服)并且仍然活跃?如何知道产品存在于数据库中并

  • 我将repo.scala-sbt.org和dl.bintray.com证书添加到Java密钥库中,并将密钥库路径(djavax.net.ssl.truststore)添加到sbt配置中,但这并不能解决问题。有什么解决这个问题的建议吗? --TIA -djavax.net.ssl.trustStore=“\jre\lib\security\cacerts” [error](更新)LMCoursier

  • 对我的java项目执行sonarQube分析时引发以下错误: