ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • struts1 :: ActionMapping에 대한 정리
    IT/Java & JSP & FW 2012. 4. 25. 21:04

    ActionMapping에 대한 정리


    • ActionMapping은?

    • URL과 Action 객체를 연결해 준다.

    • 사용자가 특정 URL을 호출하면 struts-config.xml에 설정된 어떤 ActionForm에 폼 값을 채워야 하는지 판단하고, 필요하다면 ActionForm객체를 생성한 뒤에, Action을 호출한다.

    • ActionMapping은 Struts로 만든 어플리케이션의 흐름을 관장한다.


    <action-mappings>
    	<!-- 사용자가 http://hostname/logoff.do를 호출하면 app.LogoffAction
    		액션 객체를 호출하여 비지니스로직을 수행한다.-->
    	<action path="/logoff" type="app.LogoffAction"/>
    
    	<!-- 사용자가 http://host/logonSubmit.do를 호출하면,
    		액션 객체를 호출하기 전에 "logonForm" ActionForm 객체를 생성하여
    		폼 값을 채워서 액션에 넘겨준다.
    		ActionForm의 validate()가 false를 리턴하면 "/pages/Logon.jsp"로
    		돌아간다. -->
    	<action path="/logonSubmit" type="app.LogonAction" name="logonForm" scope="request" validate="true" input="/pages/Logon.jsp"/>
    	
    	<action path="/logon" type="app.ContinueAction">
    		<forward name="continue" path="/pages/Logon.jsp"/>
    	</action>
    </action-mappings>
    



    • <action> 프라퍼티 설정

    • path : 가상의 URI. ActionServlet의 서블릿 매핑을 *.do로 지정했다면, path는 ".do"를 제외하고 기입한다.

    예) path="login" -> 호출 URL은 http://host/login.do 가 된다.

    • forward (속성) : Action 호출없이 바로 다른 페이지로 forward한다. (RequestDispatcher.forward 이용)

    • include : Action 호출없이 다른 페이지를 include한다.

    • type : 가장 일반적으로 사용된다. 작업을 처리할 Action 클래스를 지정한다.

    • name : ActionForm을 지정한다. <form-bean>에서 설정된 이름(name)을 지정한다.

    • roles : 보안 권한 지정. 쉼표로 보안 권한을 지정한다. 보안 권한은 RequestProcessor의 "processRoles" 메소드를 확장해서 구현한다.

    • scope : ActionForm의 스코프를 지정한다.(주로 request, session)

    • validate : ActionForm의 validate()를 호출할지 여부. true/false

    • input : ActionForm의 validate()가 false를 리턴할 경우 input에 지정된 페이지로 제어가 넘어간다.

    • inputForward : input과 같지만, <forward>에 지정된 이름을 사용한다. <controller inputForward="true"/> 여야 사용가능

    • unknown : <action>이 지정되지 않는 ActionMapping URL(/*.do) 요청이 들어오면 보여줄 페이지를 지정한다.

    <action name="/debug" unknown="true" forward="/pages/debug.jsp"/>

    • <forward> (엘리먼트) : 현재 ActionMapping에만 적용되는 지역 ActionForward 설정.

    • <exception> (엘리먼트) : 현재 ActionMapping에만 적용되는 지역 ExceptionHandler 설정.

Designed by Tistory.