<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><%@ page import="com.alipay.services.*"%>
<%@ page import="com.alipay.util.*"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<%
String test = "";
TestJava.getTestString();
%>
  </head>
  
  <body>
    
  </body>
</html>JSP页面代码。<%@ page import="com.alipay.util.*"%>这已经引入 TestJava这个类了。
package com.alipay.util;public class TestJava {

public static String getTestString() {
return "TestString";
}

}
报错信息:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 34 in the jsp file: /MyJsp.jsp
TestJava cannot be resolved
31:   <body>
32:     <%
33:  String test = "";
34:  TestJava.getTestString();
35:  %>
36:   </body>
37: </html>
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)请教~~~

解决方案 »

  1.   

    你前面设一个 String a =TestJava.getTestString(); 应该就没问题了。。
      

  2.   

    <%
    TestJava  tj = new TestJava();
    String a =tj.getTestString();
    %>
    <%=a%>
    声明一下
      

  3.   

    jsp页面嵌入代码, 引入类。 可是不能操作类的静态方法???? 不知道 怎么回事 没这么写过 ,可是按理说应该没有什么错误啊
      

  4.   

    我说哥们!!  这不是java语义的问题吧~
      

  5.   

    <body>
         <%
            Test.getTestString();
    System.out.println(Test.getTestString());
        %>
      </body>
    这样
      

  6.   

    <%
            String test = "";
            TestJava.getTestString();
        %>
    这个应该写在body里面吧
      

  7.   

    <%@ page import="com.alipay.services.*"%>
    <%@ page import="com.alipay.util.*"%>
    <%@ page import="java.util.HashMap"%>
    <%@ page import="java.util.Map"%>把這些放在第一行吧,如果可以,嘗試看下jsp翻譯后的java文件,或許能看出什麽來。
      

  8.   

    你到服务器 有个 work 文件夹里面去看看这个jsp生成的 .java文件中有啥问题
      

  9.   

    跟<body>没有关系。 
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 31 in the jsp file: /MyJsp.jsp
    TestJava cannot be resolved
    28:   <body>
    29:     <%
    30: 
    31:  TestJava.getTestString();
    32:  %>
    33:   </body>
    34: </html>
    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  10.   

    <%@ page import="com.alipay.util.*"%>  这个引入 有时候 会有问题  你试一下全路径
      

  11.   

    package org.apache.jsp;import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import com.alipay.util.*;public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {MyJsp的java文件中,已经引入了 com.alipay.util.* 这个包啊~~
      

  12.   

    看看TestJava的class文件有沒有生成了
    還可以測試下去掉jsp文件中的TestJava,看看能不能正常編譯,如果可以,說明其它import都能正常工作,只關乎你TestJava的import了 
      

  13.   


    JSP页面也要引入的好吧、
      

  14.   


    你丫的说话过过脑子行不行!会直接去写JSP相应生成java文件,你在JSP中写<%@ page import="com.alipay.services.*"%>,它相应的java文件才会有import com..好吧  我擦
      

  15.   


    你说的,我测试过。 奇怪, 相应的java 文件中已经把包引入进来了。纳闷~
      

  16.   

    <java code>
    请问,用灰色框显示代码段?
    </java code>
      

  17.   

    是不是脚本用错了
    用这个感觉你的那个没啥问题,如果是输出的话,应该用<%= %>
      

  18.   

    用<jsp:userBean、>引入试试呢
      

  19.   

    所有的门楼们~~~~ 找出错误原因了~~~
    org.apache.jasper.JasperException: Unable to compile class for JSP:  An error occurred at line: 31 in the jsp file: /MyJsp.jsp
    TestJava cannot be resolved
    28: <body>
    29: <%
    30: 
    31: TestJava.getTestString();
    32: %>
    33: </body>
    34: </html>这种错误呢,首先分析是因为。类没有引入的原因。 跟楼上那些脑子有问题的人来说,不是什么语义啊什么问题。
    所看JSP页面文件引入方式,没有错误。
    为什么静态方法就出问题了呢。 静态方法调用和对象调用方法我刚才试了一下。对象调用方法的提示的更明确。cannot be resolved to a type原来的分析都有误区,一直以为都是JSP写的问题。可是都没想到,页面没问题,是不是就没有找到class文件,java执行的都是编译后的class文件。
    后来我看下来下。 我把支付宝的即时结报测试项目导入后不是web项目,classpath的编译地址,不是项目中webRoot/WEB0-INF/classes文件夹里。so就出现了这个问题。唉 也是大意之间浪费了时间。 其实有时候我们想问题就应该从根想起。 只是被表面所迷惑了~~
    废话不多说了。 放分100分,说的差不多的一人10分~~~
      

  20.   

    其实大家想想,既然JSP页面没有问题。 那就是说明class文件没有找到的问题。
    咱们都被表面所迷惑了。没有想到这一次。
    web项目的发布,src的javaclass文件都会在webRoot/WEB-INF/classes下
    classpath中 有output.... 我导入的是支付宝即时结报的测试项目。so出现问题废话不说,放分一人10分~~~
      

  21.   


    最初测试TestJava是拿另一个项目里的jsp实验的。。 搞的以为正确了 大意了