org.apache.jasper.JasperException:/Results.jsp(4,5)标准操作无效

时间:2012-05-06 02:44:05

标签: java jsp jstl

我有以下jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*" %>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0">
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Home</title>
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>
<div class="container">
  <jsp:include page="/WEB-INF/embeds/header.jsp"/>
  <div class="content">
    <h>Hotel Results</h>
    <table cellpadding="15">
    <c:forEach var="result" items="${search}">
    <tr>
        <td style="padding: 0px 0px 8px 10px">
            <c:out value="${search.roomDescription}"/>
        </td>
    </tr>
    </c:forEach>
    </table>
  </div>
</div>
</body>
</html>

和一个room对象,其中包含int idString roomDescription,我想从arraylist中打印出这些,我过去常常通过结果存储所有房间ResultSet

似乎错误此代码

org.apache.jasper.JasperException: /Results.jsp(4,5) Invalid standard action

有人能告诉我它有什么问题吗? (我的房间类由这两个变量和getter和setter组成)。我已经测试了数组列表的大小,我知道我正在添加房间对象。

3 个答案:

答案 0 :(得分:4)

我认为导致异常的问题是由<jsp:root>元素引起的,根据this page,该元素格式不正确。如果我正确阅读链接页面,JSP末尾应该有一个匹配的</jsp:root>标记。

即使这不是确切的问题,异常消息表明问题出在“[4,5]”:即JSP文件的第4行#5字符。

答案 1 :(得分:1)

我遇到了同样的问题。

我在<jsp:root>之前声明了 taglib ,如下所示:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="psc" %>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">

我颠倒了他们的订单,并解决了这个问题

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">  

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="psc" %>

答案 2 :(得分:0)

<c:forEach var="result" items="${search}">
<tr>
    <td style="padding: 0px 0px 8px 10px">
        <c:out value="${result.id}"/>
        <c:out value="${result.roomDescription}"/>
    </td>
</tr>
</c:forEach>

搜索属性必须返回房间对象列表,迭代并显示它们。您需要使用值赋值的结果变量。