IT/Java & JSP & FW

struts1 :: ActionMapping에 대한 정리

엑수시아 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 설정.