Struts2 소스를 보던중에 발견 했습니다.
집에 Struts2 책이 두권 있지만 처음부터 끝까지 보지 않아서 지나친 부분인데 책에도 나와 있습니다.
간단한 사항이지만 책에서는 좀 애매하고 어렵게 기술된거 같습니다.

일반적인 url 입니다.

method prefix가 존재하는 url 입니다.
http://localhost:8080/jjaeko/test.action 
(파라미터 name중 method:getBar 존재)

! 가 붙은 url 입니다.

이게 무슨 내용이냐면
일반적인 url일 경우 서버쪽에 설정된 메서드를 정상적으로 호출합니다.
method prefix가 존재할 경우 DefaultActionMapper가 호출해야할 method를 바꿔 버립니다.
마찬가지로 ! 가 붙은 url도 DefaultActionMapper가 호출해야할 method를 바꿔 버립니다.

우선순위는 !, method prefix, 서버쪽 설정순 입니다.
우선순위에 의해 후보설정들은 무시 됩니다.

ps. 제목에 "! convention" 이라고 쓴 이유는 소스코드상에
// handle "name!method" convention. 라는 주석이 있기 때문입니다.

ps2. ! convention이 작동하려면 struts.enable.DynamicMethodInvocation 상수 값이 true여야 합니다.

'Struts2' 카테고리의 다른 글

ActionEventListener 인터페이스 발견  (0) 2008.10.27
UnknownHandler 인터페이스 발견  (0) 2008.10.27
method prefix와 ! convention  (0) 2008.10.26
Struts2 아키텍쳐  (2) 2008.01.31
Struts2 설정 - 상수 설정  (0) 2008.01.27
Strtus2 설정 - struts.xml  (3) 2008.01.20
Posted by 째코

댓글을 달아 주세요