2014-01-06 4 views
1

나는 JSP 페이지에서 변수 값을 가져 오려고하는데 클래스가 있지만 싱글 톤이기 때문에 문제가있는 것으로 보인다.jsp : 간단한 싱글 톤을 사용하는 useBean

MyController.java

public class MyController { 

    private static volatile MyController myController = new MyController(); 
    private Integer id; 

    private MyController() { 
    } 

    public static MyController MyController() { 
     return myController; 
    } 

    public void display() { 
     id = 1; 
    } 

} 

test.jsp를 :

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Test</title> 
    </head> 
    <body> 
     <jsp:useBean id="myController" scope="application" class="test.controller.MyController"/> 
     <p> 
      The ID is: ${myController.id}! 
     </p> 
    </body> 
</html> 

오류 :

org.apache.jasper.JasperException : java.lang의 .Clas sNotFoundException : 또한 org.apache.jsp.test_jsp

, 나는 id 변수를 초기화 할 수있는 JSP 페이지에서 display() 메서드를 호출하는 방법을 잘 모르겠어요?

답변

0

더 이상 jsp : useBean을 안됩니다. BTW, jsp : seBan은 public-arg 생성자가 bean을 인스턴스화 할 것으로 기대하며, bean은 singleton이라고 가정하기 때문에 새로운 인스턴스를 원하지 않습니다.

는 간단하게 배포 시간이나 응용 프로그램 범위에서 싱글을 저장하는 컨텍스트 리스너에서 초기화되는 서블릿을 사용하고 JSP에서, EL을 사용하여, 직접 사용

servletContext.setAttribute("myController", MyController.getInstance()); 
관련 문제