2013-06-13 3 views
-2

Action 클래스 변수 값을 Struts 2의 다른 Action 클래스로 전달하는 방법은 무엇입니까?Action 클래스 변수 값을 Struts 2의 다른 Action 클래스로 전달하는 방법

다른 액션 클래스의 쿼리 변수에서 검색된 것을 사용하고 싶습니다.

+0

나는 struts2에서 이것을 원했습니다. – user

+0

사용 사례는 무엇입니까? 두 행동을 어떻게 연결하고 있습니까? –

+0

@Dave Newton 유스 케이스에 대해 모르겠습니다. 내가 LoginAction 클래스에 세 매개 변수를 선언하고 JSP 페이지를 통해 세 매개 변수에 대한 값을 입력했다. 이제 InboxAction 클래스에있는 세 가지 값 중 하나를 검색하려고합니다. 원하는 경우 내 코드도 게시 할 수 있습니다. – user

답변

0

시도해보십시오. 첫 번째 작업에서 결과 유형 chain을 사용하십시오.

첫 번째 행동

링크의 결과에 대한 값으로 두 번째 작업의 이름을 추가

2

다른 방법이 있습니다 체인 결과에 대한 struts2의 공식 페이지로 연결하는 작업 수 다른 스레드에서 실행되는 것처럼 서로 통신하고 조치 컨텍스트를 공유하지 않습니다. 가장 많이 사용되는 방법은 요청 또는 URL에서 매개 변수를 전달하는 것입니다. XWork 변환기는 OGNL을 사용하여 작업 속성으로 변환합니다.

하지만 LoginAction의 목적은 자격 증명 ((email, username, password))으로 사용자를 인증하고이 정보를 세션 맵에 저장하는 것입니다. 그것은 행동 사이에 공유 될 수있는 공통된 자원입니다. 액션과 다른 액션에서 사용할 수있는 세션 맵을 얻으려면 SessionAware을 구현해야합니다. Struts가 세션 맵을 action 속성에 삽입하는 데 도움이 될 것입니다. 애플리케이션을 통해 많은 액션에서 세션을 사용하려는 경우 모든 액션에서이 인터페이스를 구현하지 않으려면 기본 액션을 생성 할 수 있습니다.

public class BaseAction extends ActionSupport implements SessionAware { 

    private Map<String, Object> session; 

    public setSession(Map<String, Object> session){ 
    this.session = session; 
    } 

    public Map<String, Object> getSession(){ 
    return session; 
    } 
} 

는 작업은 세션 Compability가를 얻을 수있는 기본 동작을 확장합니다.

public class LoginAction extends BaseAction { 

    @Override 
    public String execute() throws Exception { 
    User user = getUserService().findBy(username, email, password); 
    getSession().put("user", user); 

    return SUCCESS; 
    } 

} 
이제

세션에서 사용자와 다른 행동이나 JSP와 session지도에서 user 객체에서 세션을 얻을 수 있습니다.

public class InboxAction extends BaseAction { 

    @Override 
    public String execute() throws Exception { 
    User user = (User) getSession().get("user"); 

    return SUCCESS; 
    } 

} 
+0

다른 액션 클래스로 어떻게 가져갈 수 있습니까? – user

+0

@user 업데이트 된 답변보기. –

+0

@user 아니면 답변이 더 적합 할 수도 있습니다 [this] (http://stackoverflow.com/a/17212097/573032)? –

0

다른 작업에 모두 값을 게시하려면 'chain'을 사용하고, 다른 방법으로는 redirect-action을 사용하고 매개 변수를 지정하십시오.

관련 문제