2012-05-16 7 views
1

implements Preparable 메서드를 사용하고 prepare() 메서드를 재정의하고 준비 과정에서 문제가 발생하면 com.opensymphony.xwork2.ActionSupport addActionError으로 작업 오류를 설정합니다.Struts2 준비 메서드를 처리 할 수 ​​없습니다.

준비 메소드가 실제 초기화 메소드에서이 메시지를 처리하려고하는 오류 메시지를 설정 한 후.

public class TestClass implements Preparable { 

    public void prepare() { 
     // ... 
     if (error) { 
      addActionError("error"); 
     } 
    } 

    public String initializeAndDo() { 
     String target = ERROR; 
     // ... 
     return target; 
    } 

} 

내가 그것을 디버깅 할 때, 그것은 결코 initiliazeAndDo 방법에 도달하지 자동으로 입력을 반환합니다.

struts.xml : 액션 블록에 인터셉터가 없습니다.

<action name="action_name" method="initializAndDo" class="TestClass"> 
    <result name="input">/pages/input.jsp</result> 
    <result name="error">/pages/error.jsp</result> 
</action> 

어떤 아이디어가 있습니까?

답변

1

확실히; 이는 정상적인 동작입니다.

오류가있는 경우 "workflow" 인터셉터는이를보고 "input" 결과로 전달합니다.

표준이 아닌 워크 플로가 중단되지 않으려면 prepare() 메서드에서 오류를 설정하지 마십시오. 한 가지 방법은 initializeAndDo 방법으로 확인할 수있는 prepare()에 플래그를 설정하는 것입니다. 그러면 "workflow"이 요청을 단락시키지 않게됩니다.

관련 문제