InventoryReport.jsp 必须分析inventory.XML 文件,以便生成一个将列出商店中的每本书的融洽关系,为每本书生成一个警告,从数量低于指定的库存限制,列出所有从书籍开始的书籍较高的库存数量到较低的数量。
Tomcat生成的错误说:
org.apache.jasper.JasperException: An exception occurred processing JSP page /inventoryReport.jsp at line 22
19: <div>
20: <ul>
21:
22: <x:forEach var="book" select="$doc/inventory/book">
23:
24: <li><x:out select="$book/title" /></li>
25: </x:forEach>
我试图分析这个错误,但由于我对这一切都不熟悉,所以看不到出了什么问题。
我的xml文件
<?xml version="1.0" encoding="utf-8"?>
<inventory>
<book>
<author>Pierre</author>
<title>Développez vos applications web avec JRuby !</title>
<date>Janvier 2012</date>
<price>22</price>
<stock>127</stock>
<minimum>10</minimum>
</book>
<book>
<author>Paul</author>
<title>Découvrez la puissance du langage Perl</title>
<date>Avril 2017</date>
<price>26</price>
<stock>74</stock>
<minimum>10</minimum>
</book>
<book>
<author>Matthieu</author>
<title>Apprenez à programmer en C</title>
<date>Novembre 2009</date>
<price>25</price>
<stock>19</stock>
<minimum>20</minimum>
</book>
<book>
<author>Matthieu</author>
<title>Concevez votre site web avec PHP et MySQL</title>
<date>Mars 2010</date>
<price>30</price>
<stock>7</stock>
<minimum>20</minimum>
</book>
<book>
<author>Cysboy</author>
<title>La programmation en Java</title>
<date>Septembre 2010</date>
<price>29</price>
<stock>2000</stock>
<minimum>20</minimum>
</book>
</inventory>
我的 .jsp 文件
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Inventory report</title>
</head>
<body>
<c:import url="inventory.xml" var="documentXML" />
<x:parse var="doc" doc="${documentXML}" />
<p><b>List of all the books :</b></p>
<div>
<ul>
<x:forEach var="book" select="$doc/inventory/book">
<li><x:out select="$book/title" /></li>
</x:forEach>
</ul>
</div>
<p><b>List of books that needs re-stock :</b></p>
<div>
<ul>
<x:forEach var="book" select="$doc/inventory/book[stock < minimum]">
<li><x:out select="$book/title" /> : <x:out select="$book/stock" />
books in stock (limit before warning : <x:out select="$book/minimum" />)</li>
</x:forEach>
</ul>
</div>
<p><b>List of books classified by stock :</b></p>
</body>
</html>
我尝试了一个更简单的练习(见下面的代码)但是tomcat不断返回这个错误:
org.apache.jasper.JasperException: An exception occurred processing JSP page /inventoryReport.jsp at line 17
14: <c:import url="inventory.xml" varReader="monReader">
15:
16: <x:parse var="doc" doc="${monReader}" />
17: <x:out select="$doc/news/article/auteur" />
18:
19:
20:
我的xml文件
<news>
<article id="1">
<auteur>Pierre</auteur>
<titre>Foo...</titre>
<contenu>...bar !</contenu>
</article>
<article id="27">
<auteur>Paul</auteur>
<titre>Bientôt un LdZ J2EE !</titre>
<contenu>Woot ?</contenu>
</article>
<article id="102">
<auteur>Jacques</auteur>
<titre>Coyote court toujours</titre>
<contenu>Bip bip !</contenu>
</article>
</news>
我的 Jsp 文件
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Inventory report</title>
</head>
<body>
<c:import url="inventory.xml" varReader="monReader">
<x:parse var="doc" doc="${monReader}" />
<x:out select="$doc/news/article/auteur" />
</c:import>
</body>
</html>