我以前曾经运行过此代码,并且可以正常工作,但是现在它显示的是我在下面编写的错误。问题与JSTL库的for循环有关。
<c:forEach begin="0" end="${car.totalNumberOfCars - 1}" >
<a class="car-link" href="model.jsp?id=${car.cars[0].carId}" id="${car.cars[0].carId}" >
<div class="col-sm-6 col-md-3">
<div class="thumbnail parts">
<img src="${car.cars[0].carImg}" alt="..." height="300"/>
<div class="caption">
<h1>${car.cars[0].carName}</h1>
<p> ${car.cars[0].carDesc}</p>
</div>
</div>
</a>
</div>
</c:forEach>
这是控制台上显示的错误。
error: package org.apache.taglibs.standard.tag.rt.core does not exist
好像您缺少JSTL的.jar文件
尝试从此处下载:
https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
然后将其添加到WEB-INF内的lib文件夹中(或与其他.jar文件相同的位置,例如在注释中提到的mysql驱动程序)
我换了Javabean构造车,但是乔纳森的回答是正确的。
<% car.setCars();
for (int i = 0; i < car.getTotalNumberOfCars(); i++) {
out.println("<a class=\"car-link\" href=\"model.jsp?id="+ car.cars[i].getCarId()+"\" id"+ "=\"" +car.cars[0].getCarId() + "\">");
out.println("<div class=\"col-sm-6 col-md-3\"> ");
out.println("<div class=\"thumbnail parts\">");
out.println("<img src=\""+ car.getCars()[i].getCarImg()+ "\" alt=\"...\""+ " height=\"300\">");
out.println("<div class=\"caption\"");
out.println("<h1>"+car.getCars()[i].getCarName()+"</h1>");
out.println("<p>"+car.getCars()[i].getCarDesc()+"</p>");
out.println("</div>");
out.println("</div>");
out.println("</a>");
out.println("</div>");
}
%>
您打开了一些标签。您具有这种简化的结构:
<c:forEach>
<a>
<div>
<div>
<img/>
<div>
<h1></h1>
<p></p>
</div>
</div>
</a>
</div>
</c:forEach>
但是结束a
标记和最后一个结束div
标记顺序错误,请翻转它们。