페이지

2015. 2. 24.

[struts2] struts.xml 태그들

[default-action-ref]
디폴트 액션
<default-action-ref name="hello2" />
http://localhost:8080/struts/tete.action를 요청해도(잘못된 경로를 요청하면) hello2를 불러줌


[default-class-ref]
디폴트 클래스
<action name="hello2">
    <result>/0223/result.jsp</result>
</action>

액션의 이름은 정해주었지만 클래스를 지정하지 않았을때는 정해놓은 디폴트 클래스를 불러준다
<default-class-ref class="test.action.HelloWorld" />
클래스를 등록하지 않았을 경우 디폴트로 처리해줄 클래서를 등록!

주의 점은 이 두 태그(디폴트 설정태그)는 패키지태그안에서 가장 처음에 나와야 한다.

<default-action-ref name="hello2" />
<default-class-ref class="test.action.HelloWorld" />

<action name="hello">
    <result>/0223/hello.jsp</result>
</action>
<action name="hello2" class="test.action.HelloWorld">
    <result>/0223/result.jsp</result>
</action>





[global-results]
액션이 여러개가 있을때
global result를 설정해서 동일한 결과를 보기쉽게 설정할수 있다.
즉, 모든 hello와 hello2액션 모두 결과가 ok이라면 ok.jsp로 이동할 것임!
success일때만 해달 jsp로 이동

<struts>
    <package name="test" extends="struts-default

        <global-results>
            <result name="ok">/0223/ok.jsp</result>
            <result name="save">/0223/save.jsp</result>
        </global-results>
       
        <action name="hello" class="test.action.HelloAction">
            <result>/0223/hello.jsp</result>
        </action>
        <action name="hello2" class="test.action.HelloWorld">
            <result>/0223/result.jsp</result>
        </action>
    </package>
</struts>



[global-exception-mappings]

글로벌익셉션맵핑은 예외를 처리함

<global-exception-mappings>
    <exception-mapping result="ok" exception="java.lang.Exception" />
</global-exception-mappings>

"액션을 실행하다가 예외가 발생한다면 ok로 리턴하라"의 의미


public String execute() throws Exception {
    System.out.println(0/0);// 예외 발생
    return SUCCESS;
}

0/0이 예외이기 떄문에 ok로 이동함!!



[exception-mapping]
그리고 액션태그에서도 익셉션 맵핑을 할 수 있음
근대 보통 안함(안쓰임)
<action name="hello2" class="test.action.HelloWorld">
    <exception-mapping result="save" exception="java.lang.Exception" />
    <result>/0223/result.jsp</result>
</action>