Maven을 사용한 Struts2 웹 어플리케이션 만들기
webapp archetype으로 웹 어플리케이션을 만들었다면,
app/src/main/webapp 디렉토리의 index.jsp 파일을 아래의 주소로 확인할 수 있습니다.
http://localhost:8080/app/index.jsp
이제 Struts2 프레임워크를 사용하기 위해 pom.xml 파일에 dependency 요소를 추가합니다.
Struts2 구동에 필요한 jar 파일들이 WEB-INF/lib 디렉토리에 다운로드 됩니다.
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.14</version>
</dependency>
모든 클라이언트 요청(/*)에 대해 Struts2 Filter Dispatcher 를 사용하도록,
web.xml 파일에 <filter />, <filter-mapping /> 요소를 추가합니다.
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Struts2는 URL, 클래스, 뷰페이지 사이의 관계를 지정하기 위해 XML 설정 파일이나 메타데이터(annotation)을 사용할 수 있습니다.
XML 설정 파일을 사용하는 방법으로 아래의 내용을 src/main/resources 디렉토리에 struts.xml 파일로 저장합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="basicstruts2" extends="struts-default">
<action name="index">
<result>/index.jsp</result>
</action>
</package>
</struts>
<constant /> 요소는 프레임워크 속성을 설정하는데 위에서는 개발모드(devMode)로 실행한다고 설정하였습니다.
action 이름은 index 이며 index.action 을 호출하면 결과 페이지로 index.jsp 파일이 렌더링 됩니다.
"index.jsp 와 index.action 은 같은 페이지를 출력하지만 같은 것이 아님에 주의하라!"
아무것도 없이 단지 action 맵핑뿐인 위 예제로는 도저히 이해할 수 없는 주의..;;
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.