오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
만약 Action의 프로퍼티가 params 인터셉터에 의해 자동으로 세팅 되는 것을 원하지 않는다면 com.opensymphony.xwork2.interceptor.NoParameters 인터페이스를 구현하면 된다. NoParameters 인터페이스는 특별한 구현이 없는 Mark Interface로 단지 이 인터페이스를 구현했는지 안 했는지로 파라미터를 세팅 할건지 안 할건지를 결정한다.
params 인터셉터의 또 다른 기능으로 특정 파라미터는 값을 세팅하고 특정 파라미터는 처리하지 않을 수 있다. ParameterNameAware 인터페이스를 구현하면 되는데 acceptableParameterName(String parameterName) 메소드를 구현해서 Action에서 받아들일 파라미터는 true를 아닌 파라미터는 false를 리턴하면 된다.
[원하는 파라미터만 세팅을 원하는 경우의 Action]
public class LoginAction implements Action, Preparable, ModelDriven, ParameterNameAware {
//도메인 오브젝트
UserInfo userInfo;
public boolean acceptableParameterName(String parameterName) {
//id라는 이름으로 파라미터가 넘어오면 Action에 세팅 안함
if ("id".equals(parameterName)) {
return false;
}
return true;
}
……
……
}
[Action 프로퍼티에 파라미터 세팅을 원하지 않는 경우]
다음과 같이 Action에서 NoParameters 인터페이스를 구현하면 된다. 별다른 메소드를 구현할 필요는 없으며 클래스 선언부에 인터페이스 구현한다고 기술하면 된다.
public class LoginAction implements Action, Preparable, ModelDriven, NoParameters {
……
}
댓글 없음:
댓글 쓰기