【问题标题】:JSP + Eclipse + TomCat: cannot be resolved to a typeJSP + Eclipse + TomCat:无法解析为类型
【发布时间】:2012-07-17 01:30:03
【问题描述】:

我知道这个问题已经被问过很多次了,但是到目前为止,之前给出的答案都没有对我有用,这是我的代码:

<html>
  <head>
    <title>Programa</title>
  </head>
  <body>
    <div>
      Introduzca una palabra a buscar:
      <input type="text" id="INPUT">

      <%@ page import="java.net.URL" %>
      <%@ page import="com.google.gson.*" %>
      <%@ page import="java.net.URLEncoder" %>
      <%@ page import="java.io.InputStreamReader" %>
      <%@ page import="java.io.InputStream" %>
      <%@ page import="java.io.Reader" %>
      <%@ page import="javax.swing.*" %>
      <%@ page import="java.awt.event.*;" %>

      <%!
      int min(int a,int b) {
          return (a>b)? b:a;
      }
      int edit_distance(String a,String b) {
          int n = a.length(), m = b.length(),costo;
          int[][] mat = new int[n+1][m+1];
          for(int i=0;i<=n;++i) mat[i][0] = i;
          for(int j=0;j<=m;++j) mat[0][j] = j;

          for(int i=1;i<=n;++i) {
            for(int j=1;j<=m;++j) {
              costo = a.charAt(i-1) == b.charAt(j-1)? 1 : 0;
              mat[i][j] = min(min(mat[i-1][j] + 1,mat[i-1][j-1] + costo),mat[i][j-1] + 1);
            }
          }
          return mat[n][m];
      }
      String resultados_de_la_busqueda(String search) { //Básicamente lo que hace esta función es devolverte una cadena con los resultados de la búsqueda
          StringBuffer RES = new StringBuffer("<html>");
          String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="; //El enlace para buscar en google
          String charset = "UTF-8";
          URL url;
          Reader reader;
          try {
            url = new URL(google + URLEncoder.encode(search, charset));
            try {
              reader = new InputStreamReader(url.openStream(), charset);
              GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
              for(int i=0;i<3;++i) {
                RES.append(results.getResponseData().getResults().get(i).getTitle());
                RES.append("<br/>");
                RES.append("<a href=\"");
                RES.append(results.getResponseData().getResults().get(i).getUrl());
                RES.append("\">" + results.getResponseData().getResults().get(i).getUrl() + "</a>");
                RES.append("<br/><br/>");
              }
            } catch(Exception e) {}
          } catch(Exception e) {}
          return RES.toString();
      }
      %>

      <%
      //Se supone que acá debo mostrar el resultado de la búsqueda...
      out.println(resultados_de_la_busqueda("taringa"));
      %>
    </div>
  </body>
</html>

这是我得到的错误:

org.apache.jasper.JasperException: No se puede compilar la clase para JSP: 

Ha tenido lugar un error en la línea: 47 en el archivo jsp: /Programa.jsp
GoogleResults cannot be resolved to a type
Gson cannot be resolved to a type

知道是什么导致了问题吗?

编辑 1:

这是 GoogleResults 类:

import java.util.List;

public class GoogleResults {

  private ResponseData responseData;
  public ResponseData getResponseData() { return responseData; }
  public void setResponseData(ResponseData responseData) { this.responseData = responseData; }
  public String toString() { return "ResponseData[" + responseData + "]"; }

  static class ResponseData {
    private List<Result> results;
    public List<Result> getResults() { return results; }
    public void setResults(List<Result> results) { this.results = results; }
    public String toString() { return "Results[" + results + "]"; }
  }

  static class Result {
    private String url;
    private String title;
    public String getUrl() { return url; }
    public String getTitle() { return title; }
    public void setUrl(String url) { this.url = url; }
    public void setTitle(String title) { this.title = title; }
    public String toString() { return "Result[url:" + url +",title:" + title + "]"; }
  }
}

【问题讨论】:

  • GoogleResultsGson 类的包名是什么?从发布的代码来看,我认为你还没有导入。
  • 另外,您似乎正在学习。我建议您阅读How to avoid Java Code in JSP-Files?,BalusC 编写的答案将向您展示避免在 JSP 中出现此类问题的良好做法。 Buena suerte en tu proyecto!
  • Gson 来自 gson 包:code.google.com/p/google-gson 我在这里导入(希望如此): GoogleResults 没有包.不是不想学,而是没时间做,项目已经做完了,老师叫我们不要用swing,用jsp,嗯,很糟糕.
  • 检查您是否已下载该 jar 并将其添加到您的构建路径中。重建您的项目并重新部署它以更新更改。
  • 我已经下载了所有的 jar 文件,但老实说,我不知道把它们放在哪里,所以我把它们放在了我能找到的每个文件夹中,这是我的项目浏览器的样子: pasteshack.net/images/313760001342585673.png

标签: java eclipse jsp tomcat


【解决方案1】:

好像没有接你的课……

做一个项目>清理然后刷新它(F5)。

希望这对您有所帮助,这是我的来源:

Click here

【讨论】:

    【解决方案2】:

    始终将您的类放在包中。

    【讨论】:

    • IMO 答案应该是评论。
    【解决方案3】:

    确保您的 GoogleResults.class 正在 WEB-INF/classes/ 下编译

    在我看来,您应该在 .jsp 的开头导入此文件。

    希望有帮助

    【讨论】:

      【解决方案4】:

      创建新项目。从旧项目复制此新项目中的所有文件。 删除旧项目并重命名新项目。

      就是这样。它会正常工作

      【讨论】:

        【解决方案5】:

        有时,如果您将项目导入新工作区,如果 JRE 与新工作区中的先前工作区不同,则会遇到此问题,请尝试更改构建路径中的 jre 系统库。成功了

        【讨论】:

          【解决方案6】:

          这发生在我的 java 自动更新后。 检查 JRE 是否正确设置: R点击项目,选择 Build Path ->configure Build Path ,转到 libraries Path 并确保 JRE System library 已正确配置。

          【讨论】:

            猜你喜欢
            • 2012-05-27
            • 2016-05-12
            • 2013-07-17
            • 1970-01-01
            • 2012-09-12
            • 1970-01-01
            • 2011-10-08
            • 2019-08-06
            • 1970-01-01
            相关资源
            最近更新 更多