-
스트럿츠2 - valueStack과 ModelDriven, Preparable 인터페이스 구현웹프로그래밍/struts 2018. 6. 4. 12:13
prepare, modelDriven이라는 인터셉터를 붙였으며 액션에서 Preparable, ModelDriven 인터페이스를 구현했다. 좀더 자세히 설명하자면 params 인터셉터는 액션의 프로퍼티를 채우는 것이 아니라 ValueStack 상단에 있는 오브젝트 부터 프로퍼티를 채운다. ValueStack은 일종의 스택인데 일반적인 스택처럼 스택의 상단에 오브젝트를 넣고 꺼내는 것이 아니라스택 상단 오브젝트의 프로퍼티를 세팅하고 읽는 스택이다. Struts2에서는 액션 인스턴스를 ValueStack의 최 상단에 넣는다. 따라서 params 인터셉터를 붙이면 액션의 프로퍼티가 세팅 되는 것이다.
modelDriven 인터셉터는 ModelDriven 인터페이스를 구현한 액션에서 getModel() 메소드를 실행해서 리턴받은 모델 오브젝트를 ValueStack의 최 상단에 올린다. (액션 보다 위에...) 따라서 modelDriven 인터셉터를 먼저 붙이고 params 인터셉터를 붙이면 요청파라미터들은 모델 오브젝트의 프로퍼티로 세팅 되는 것이다.
prepare 인터셉터는 Preparable 인터페이스를 구현한 액션에서 prepare() 메소드를 호출한다. 모델 오브젝트를 초기화 하기 위해 되는 것으로 항상 modelDriven 인터셉터보다 먼저 붙여야 한다.출처:http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecStruts&wr_id=141
'웹프로그래밍 > struts' 카테고리의 다른 글
스트럿츠2 - 파일 입출력 (0) 2018.05.30 스트럿츠2 - 인터셉터로 세션 로그인 체크 (0) 2018.05.30 스트럿츠2 - 세션 로그인 설정 (0) 2018.05.29 스트럿츠2 - 인터셉터 (0) 2018.05.29