JSP编译但现在有几个错误?

时间:2014-07-27 20:41:54

标签: java jsp java-ee

我在github上有一个JSP和Servlet项目 - https://github.com/double-whammy/affablebean.git。此代码至少在我的旧计算机上正确编译。当我将它导入我的新计算机时,它向我显示了许多奇怪的编译错误。我将向您展示一些代码和错误。请帮我纠正一下。

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/affablebean.css">
<title>The Affable Bean</title>
</head>
<body>

    <sql:query var="categories" dataSource="jdbc/affablebean">
    SELECT * FROM category
    </sql:query>

    <sql:query var="selectedCategory" dataSource="jdbc/affablebean">
    SELECT name FROM category WHERE id = ?
    <sql:param value="${pageContext.request.queryString}" />
    </sql:query>

    <sql:query var="categoryProducts" dataSource="jdbc/affablebean">
    SELECT * FROM product WHERE category_id = ?
    <sql:param value="${pageContext.request.queryString}" />
    </sql:query>

    <div id="categoryLeftColumn">

        <c:forEach var="category" items="${categories.rows}">

            <c:choose>
                <c:when test="${category.id == pageContext.request.queryString}">
                    <div class="categoryButton" id="selectedCategory">
                        <span class="categoryText"> ${category.name} </span>
                    </div>
                </c:when>
                <c:otherwise>
                    <a href="category?${category.id}" class="categoryButton">
                        <div class="categoryText">${category.name}</div>
                    </a>
                </c:otherwise>
            </c:choose>

        </c:forEach>

    </div>
</body>
</html>

错误是:

<sql:param value="${pageContext.request.queryString}" />

Multiple annotations found at this line:
    - java.io.IOException cannot be resolved to a type
    - No exception of type ServletException can be thrown; an exception type must be a subclass of 
     Throwable
    - The method getQueryString() from the type HttpServletRequest refers to the missing type String
    - String cannot be resolved to a type

<sql:query var="categoryProducts" dataSource="jdbc/affablebean">

No exception of type JspException can be thrown; an exception type must be a subclass of Throwable

<c:forEach var="category" items="${categories.rows}">

Multiple annotations found at this line:
    - java.util.Map cannot be resolved 
     to a type

1 个答案:

答案 0 :(得分:0)

Google此错误The method getQueryString() from the type HttpServletRequest refers to the missing type String没有getQueryString()。一个SO post暗示这可能是项目默认jre的问题(如果你正在做Java企业项目,实际上是jdk)。

在eclipse中,你的项目&gt;右键单击&gt;订单和出口标签。 JRE系统库旁边应该有一个红叉,状态是未绑定的。 Another SO post表示您需要更改/修复默认的jre或jdk。

在日食,窗口&gt;喜好。删除所有旧的Jres或Jdks和jdk。添加&gt;标准VM&gt;下一个&gt;找到您安装jdk等的文件夹&gt;完成。

返回项目属性。 JRE系统库旁边应该有一个错误。选择它并将其删除。然后,添加库&gt;添加您在上一步中设置的Jre / jdk。

重建并清理您的项目。问题解决了。