public class StudentManager {
private static StudentManager instance = null; private StudentManager() {
} public static synchronized StudentManager getInstance() {
if (instance == null) {
instance = new StudentManager();
}
return instance;
}
.....
}在这个类中使用了单例模式,可是在jsp页面中使用单例报一下错误。org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 19 in the jsp file: /sysmgr/student_add.jsp
The method getInstance() is undefined for the type StudentManager
16:  String mail = "";
17:  String phone = "";
18:  if ("bj".equals(request.getParameter(bj))) {
19:  if (StudentManager.getInstance().findStudentById(request
20:  .getParameter("stuId")) == null) {
21: 
22:  Student student = new Student();

解决方案 »

  1.   

    有可能有多个同名StudentManager 类定义, 而 page import 的那个类没有getInstance 方法。
      

  2.   

    是不是没有引用StudentManager 这个类哦?import了没?
      

  3.   

    肯定import了,没改单例的时候可以new使用,就一个StudentManager类。
      

  4.   

    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%@ page import="com.qrh.bs.sysmgr.domain.*"%>
    <%@ page import="com.qrh.bs.sysmgr.manager.StudentManager"%>
    <%@ page import="java.util.*"%>
    <%
    request.setCharacterEncoding("GB18030");
    String bj = request.getParameter("bj");
    String stuId = "";
    String stuName = "";
    String password = "";
    String college = "";
    String radio = "";
    String mail = "";
    String phone = "";
    if ("bj".equals(request.getParameter(bj))) {
    if (StudentManager.getInstance().findStudentById(request
    .getParameter("stuId")) == null) { Student student = new Student();
    student.setStuId(request.getParameter("stuId"));
    student.setStuName(request.getParameter("stuName"));
    student.setPassword(request.getParameter("password"));
    student.setCollege(request.getParameter("college"));
    student.setIsLogin(request.getParameter("radio"));
    student.setMail(request.getParameter("mail"));
    student.setCreateTime(new Date());
    student.setPhone(request.getParameter("phone"));
    StudentManager.getInstance().addStudent(student);
    } else {
    //代码要是重复,就把值取出来在传回网页
    out.println("用户代码重复");
    stuId = request.getParameter("stuId");
    stuName = request.getParameter("stuName");
    password = request.getParameter("password");
    college = request.getParameter("college");
    radio = request.getParameter("radio");
    mail = request.getParameter("mail");
    phone = request.getParameter("phone");
    }
    }
    %>
      

  5.   

    是不是改成单例后,没有重启Web Server ?
      

  6.   


    public class StudentManager {
        private static StudentManager instance = new StudentManager ();    private StudentManager() {
        }    public static synchronized StudentManager getInstance() {
            
            return instance;
        }
    .....
    }
      

  7.   

    public static synchronized StudentManager getInstance()改成
    public synchronized static  StudentManager getInstance()样试试!
      

  8.   

    if (StudentManager.getInstance().
    红色部分未初始化?