RedirectAction 접두어는 Action접두어와는 달리 그 액션의 execute() 메소드를 실행시키는게 아니라

struts.xml 에 정의되어 있는 형식대로

test 라는 액션을 리다이렉트 한다.

중요한것은 Action 접두어는 execute() 를 실행시키는것이고,

RedirectAction 접두어는 액션 자체를 리다이렉트 시키는것이다.

<s:submit value="RedirectAction 접두어" name="redirectAction:test"/>

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



Action 접두어

액션 접두어는 form 에 지정된 action 말고 다른 액션을 지정하고싶을때
쓰는 접두어이다.

name="action:액션명" 을 지정하면 그 버튼은 지정한 액션의으로 서브밋 되어서 

무조건 execute() 메소드를 수행시킨다.

↑↑↑↑↑↑ 라고 했는데, struts.xml 에서 매핑을 다른 메소드로 지정을 해놓으니

그 메소드가 실행이 되는데, 이유는 좀 찾아봐야되겠다..

<s:submit value="Action 접두어" name="action:test"/>

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


접두어 4 종류


1. 메소드 접두어

Method.jsp
 
<s:form action="call">
<s:textfield name="name"/>
<br>
<s:submit value="Login"/>
<s:submit value="Login" name="method:margo"/>
</s:form>

         

<s:submit value="Login"/>
이 서브밋을 누르게 되면, struts.xml 에 정의된 call.action 이 들어오면 수행될
액션 클래스가 수행될것이다. 만약 struts.xml 에서 메소드를 지정하지 않았다면
자동으로 execute() 가 수행될것이다.


<s:submit value="Login" name="method:margo"/> 
 하지만 submit 의 name 속성에 "method:메소드명" 을 지정하게되면

call.action 이 수행하게될 액션클래스의 메소드가 실행되게 된다.

위 구문처럼 method:margo 하게되면
액션클래스에 margo() 메소드가 실행된다.





일단 제일 처음 예제처럼 method.jsp 에서 두개의 기본 버튼이 생성될것이다.
 






그리고 struts.xml 에서 call 액션에 대한 액션클래스를 매핑한다.







execute() 메소드에서는 "success"를 리턴할것이고, 
margo() 메소드에서는 "margo"를 리턴할것이다. 




 
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST