2013-06-24 3 views
0

저는 springstruts2을 처음 사용합니다. 내 action의 두 인스턴스가 있는데, 하나는 spring 주입이고 다른 인스턴스는 그렇지 않습니다. 은 여기 내 나는이 응용 프로그램을 디버깅 할 때 WelcomeUserAction.javastruts2 액션의 인스턴스가 두 개 나오지 않습니다.

public class WelcomeUserAction extends ActionSupport { 

    private String username; 
    private String password; 
    private String name; 
    private UserDaoImpl userDao; 

    @Action(value="Welcome", results = { 
      @Result(name ="success",location="pages/welcome_user.jsp"), 
      @Result(name ="input", location="pages/signup.jsp") 
    }) 
    public String execute(){ 
     User user = new User(); 
     user.setPassword(password); 
     user.setUsername(username); 
     user.setName(name); 
     if (getUserDao() == null){ 
      System.out.println("getUserDao is null"); 
     } 
     getUserDao().saveUser(user); 
     return SUCCESS; 
    } 
    /* getter and setters... */ 
} 

간단한, 나는 인덱스 페이지가로드도 전에 발견, 봄이 주입하고 있었다이다. 은 PIC는 spring injects at very very beginning

을 보여줍니다 그리고 WelcomeUserAction가 작동을 시작할 때, 다른 WelcomeUserAction 인스턴스가, 그리고 spring 관리 부분, 즉 userDaonull되었다 때문이다. another instance of the struts2 action

왜 그런지는 알 수 없습니다. applicationContext.xmlweb.xml과 같은 더 많은 정보를 제공해야합니까?

+0

왜 액션의 인스턴스에 대해 걱정할 것인가? Struts2에서는 원하는만큼 인스턴스를 가질 수 있으며 모든 스레드로부터 안전합니다. –

+0

@RomanC 글쎄, 나는 그 '봄'이 모든 행동에 주입되지 않는 것 같아 걱정한다. 두 번째 그림에서,'userDao'는 내가 필요로 할 때'null'입니다. – user1668903

+0

스프링 빈 구성에서 사용되는 배선 방법에 따라 다릅니다. –

답변

0

제가 누락 된 것을 발견했습니다. 내 buildpath에 struts2-spring-plugin.jar을 추가하는 것을 잊었다.

관련 문제