Anyframe Web를 사용하기 위한 설정 파일에 대해 알아본다.
| Name | Purpose / Default Value |
| config | Default application의 struts config file이 있는 상대(module-relative)경로를 나타낸다. Default value는 /WEB-INF/struts-config.xml이다. |
| config/sub1 | Sub-application을 사용할 때, config/와 sub-application의 prefix를 사용하여 기술한다. 예로, hello라는 prefix를 가진 sub-application이 있다면, config/hello라는 이름과 /WEB-INF/struts-hello-config.xml라는 값으로 init-param element를 기술해야 한다. 또한, sub-application이 여러 개 있다면 그 각각에 대해서 init-param element를 기술해야 한다. (우리는 config와 config/sub1, config/sub2 등을 각각 하나의 module이라고 부른다.) |
| convertNull | 강제로 forms의 property 값들을 null로 populate한다. 예를 들어, convertNull 값이 true이면, java.lang.Integer type의 property들은 default value로 0이 아닌 null이 된다. convertNull은 default로 false이다. |
| debug | Servlet의 Logging 수준을 결정한다. Default 값은 0이고, 0~6 사이의 수를 넣을 수 있다. 6이 가장 많은 양의 logging 정보를 출력할 것이다. |
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>anyframe.web.struts.common.action.DefaultActionServlet</servlet-name>
<init-param>
<param-name>config</param-name>
<param-value>/config/struts/struts-config.xml
,/config/struts/struts-config-user.xml
,/config/struts/struts-config-sale.xml
,/config/struts/struts-config-purchase.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>convertNull</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</param-name>
<taglib-location>/WEB-INF/struts-bean.tld</param-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</param-name>
<taglib-location>/WEB-INF/struts-html.tld</param-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</param-name>
<taglib-location>/WEB-INF/struts-logic.tld</param-location>
</taglib>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<init-param> <param-name>config</param-name> <param-value>/config/struts/struts-config.xml ,/config/struts/struts-config-user.xml ,/config/struts/struts-config-sale.xml ,/config/struts/struts-config-purchase.xml </param-value> </init-param>
| Name | Description |
| className | Data source들의 configuration 정보를 담고 있을 객체이다. Default로org.apache.struts.config.DataSourceConfig를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| key | 한 data source가 저장될 servlet context attribute의 name 값이다. Default 값은 org.apache.struts.Globals.DATA_SOURCE_KEY의 값이다. |
| type | 한 data source의 구현 클래스를 나타낸다. 이 클래스는 javax.sql.DataSource를 implements해야 하며, default 값은 org.apache.struts.util.GenericDataSource이다. |
<data-sources>
<data-source>
<set-property property="autoCommit" value="false"/>
<set-property property="description" value="DB Connection Pool"/>
<set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<set-property property="key" value="REFDB"/>
<set-property property="maxCount" value="5"/>
<set-property property="minCount" value="1"/>
<set-property property="user" value="scott"/>
<set-property property="password" value="tiger"/>
<set-property property="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
</data-source>
</data-sources>
| Name | Description |
| className | Form bean들의 configuration 정보를 담고 있을 객체이다. Default로org.apache.struts.config.FormBeanConfig를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| dynamic | Form bean의 type attribute가 org.apache.struts.action.DynaActionForm을 상속 받아 구현한 클래스이면, 이 attribute는 true여야 한다. Default 값은 false이다. |
| name | 이 form bean의 이름이고, 다른 form bean들과 구분될 수 있는 identifier이다. [required] |
| type | 이 form bean의 구현 클래스를 나타낸다. 이 클래스는 ActionForm의 서브클래스여야 한다. [required] |
| Name | Description |
| className | Form property들의 configuration 정보를 담고 있을 객체이다. Default로org.apache.struts.config.FormPropertyConfig를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| initial | 이 property의 initial 값을 나타내고, 문자로 표현된다. |
| name | Form bean이 사용하는 이 property의 이름이다. [required] |
| size | Form property의 type attribute가 array일 경우에, 그 array elements의 개수를 나타낸다. |
| type | Form bean이 사용하는 이 property의 type이다. 예를 들어, property가 문자일 경우에는 java.lang.String, 숫자일 경우에는 int, float, double 등이 올 수 있다. [required] |
<form-beans> <form-bean name="helloForm" type="com.sds.helloapplication.forms.HelloForm"> </form-bean> <form-bean name="employeeForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="name" type="java.lang.String"/> <form-property name="age" type="int"/> <form-property name="department" type="java.lang.String" initial="2"/> <form-property name="flavorIDs" type="java.lang.String[]"/> </form-bean> </form-beans>
| Name | Description |
| bundle | Exception의 handler 클래스가 사용하는 message resources bundle에 대한 servlet context attribute의 name 값이다. Default 값은 org.apache.struts.Globals.MESSAGES_KEY의 값이다. |
| className | Exception들의 configuration 정보를 담고 있을 객체이다. Default로 org.apache.struts.config.ExceptionConfig를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| handler | 이 exception이 발생할 때, 이 exception을 처리하는 클래스를 나타낸다. 즉, handler 클래스는, 어떤 exception이 발생하면, 적절한 error message(key attribute)와 함께 적절한 페이지(path attribute)로 forward해 주는 클래스이다. Default로 org.apache.struts.action.ExceptionHandler를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| key | 이 exception이 발생할 때, message resource bundle에서 찾아 낼 error message의 key 값이다. [required] |
| path | 이 exception이 발생할 때, forward할 resource(*.do, *.jsp 등)의 상대(module-relative)경로를 나타낸다. |
| scope | ActionError 객체에 접근할 context의 type을 나타낸다. request 또는 session. Default 값은 request이다. |
| type | Exception Handling을 수행할 exception의 type을 나타낸다. [required] |
<global-exceptions>
<exception
key="exception.key"
type="java.lang.NullPointerException"
handler="com.sds.helloapplication.exceptions.ExceptionHandler"/>
<exception
key="global.error.invalidlogin"
type="com.sds.helloapplication.exceptions.InvalidLoginException"
scope="session"
path="/security/signin.jsp"/>
</global-exceptions>
| Name | Description |
| className | Forward들의 configuration 정보를 담고 있을 객체이다. Default로 org.apache.struts.config.ActionForward를 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| contextRelative | true로 지정할 경우 path 속성에 지정된 리소스를 컨텍스트 상대 경로로 인식한다. 이 속성은 다른 하위 어플리케이션에 속한 path 속성에 지정된 리소스들의 경우를 위해 설정한다. 선택적으로 사용할 수 있는 속성이며 기본 값은 false이다. |
| name | 이 forward의 이름이고, 다른 forward들과 구분될 수 있는 identifier이다. [required] |
| path | Forward 또는 redirect할 resource(*.do, *.jsp 등)의 상대(module-relative or context-relative)경로를 나타낸다. [required] |
| redirect | RequestProcessor가 이 forward에 대해 redirect할 필요가 있을 때, true로 설정한다. Default 값은 false이다. |
<global-forwards>
<forward name="login" path="/login.jsp"/>
<forward name="main" path="/main.do" redirect="true" contextRelative="true"/>
</global-forwards>
| Name | Description |
| attribute | Form bean에 접근하기 위한, request-scope 또는 session-scope attribute의 name 값이다. 사용할 form bean을 다른 attribute의 이름으로 사용하고자 할 때 사용한다. Form bean이 name attribute에 기술되어 있을 때에만 기술될 수 있다. |
| className | Action들의 configuration 정보를 담고 있을 객체이다. Default로 org.apache.struts.config.ActionMapping을 사용하고, 반드시 이를 상속 받은 클래스여야 한다. |
| forward | 요청된 request를 Action 클래스 대신하여 수행할 resource(*.do, *.jsp 등)의 상대(module-relative) 경로를 나타낸다. [required: 반드시 forward, include, type attribute 중의 하나만 기술되어야 한다.] |
| include | 요청된 request를 Action 클래스 대신하여 수행할 resource(*.do, *.jsp 등)의 상대(module-relative) 경로를 나타낸다. [required: 반드시 forward, include, type attribute 중의 하나만 기술되어야 한다.] |
| input | Form bean에서 validation error가 발생했을 때, 이를 나타낼 resource(*.do, *.jsp 등)의 상대(module-relative) 경로를 가리킨다. Form bean이 name attribute에 기술되어 있을 때에만 기술될 수 있다. [required: form bean이 name attribute에 기술되어 있고 validation error들을 리턴할 경우] |
| name | 이 action mapping이 사용하는 form bean의 이름을 나타낸다. |
| path | Submit된 request의 상대(module-relative)경로를 나타낸다. 이 attribute는 반드시 "/"으로 시작해야 하고, filename의 확장자 없이 기술되어야 한다. 예를 들어, "/main.do"은 적절한 path attribute의 기술 방법이 아니다. 왜냐하면 우리는 이미 do라는 확장자가 action mapping에 사용되고 있는 것을 알고 있기 때문에, "/main"이라고만 기술하는 것이 옳다. [required] |
| parameter | Action 객체에 특별한 어떤 값을 넘겨주기 위한 설정 parameter이다. 현 Action 클래스에서는 이 attribute를 이용하지 않고 있기 때문에, 값을 넣는다 해도 처리되지 않는다. 만약 이 attribute를 사용하고자 하면, Action 클래스의 서브클래스를 만들어 구현해야 한다. |
| prefix | Request parameter name을 form bean property name에 매치 시키는 데 사용되는 prefix를 나타낸다. Form bean이 name attribute에 기술되어 있을 때에만 기술될 수 있다. |
| roles | Action 객체에 접근할 수 있는 권한을 설정한다. 여러 role 이름들은 콤마(,)로 구분하여 쓸 수 있다. 예를 들어, "admin,master,user"라고 써주면 admin, master, user의 세 가지 권한을 가진 사람들만이 이 action을 사용할 수 있게 된다. |
| scope | 이 action이 사용하는 form bean이 저장되어 있는 context의 scope를 나타낸다. request 또는 session. Default 값은 session이다. |
| suffix | Request parameter name을 form bean property name에 매치 시키는 데 사용되는 suffix를 나타낸다. Form bean이 name attribute에 기술되어 있을 때에만 기술될 수 있다. |
| type | 요청된 request를 수행할 Action 클래스를 나타낸다. 이 클래스는 org.apache.struts.action.Action의 서브클래스여야 한다. [required: 반드시 forward, include, type attribute 중의 하나만 기술되어야 한다.] |
| unknown | 알려지지 않은 request를 처리하는 default action mapping인지 여부를 나타낸다. 요청된 request를 수행할 action mapping 객체가 없을 경우에, unknown이 true로 설정된 action mapping 객체에게 이 request를 넘겨 처리하게 한다. 각각의 module마다 unknown이 true인 action mapping은 하나만 있을 수 있고, default 값은 false이다. |
| validate | Form bean에서 validation을 수행할지 여부를 나타낸다. 이 값이 true이면, form bean의 validate 메소드가 실행된다. Default 값은 true이다. |
<action-mappings> <action path="/hello" type="com.sds.helloapplication.actions.HelloAction" roles="admin,user" name="HelloForm" scope="request" input="/inputHello.jsp"> <forward name="success" path="/helloResult.jsp"/> <forward name="summary" path="/jsp/helloSummary.jsp"/> <exception key="error.hello" type="java.lang.Exception" path="/fail.jsp"/> </action> ... </action-mappings>
| Name | Description |
| bufferSize | 파일 업로드 시 사용하는 입력 버퍼의 크기. 이 속성은 선택적으로 사용 할 수 있으며 기본값은 4096이다. |
| className | org.apache.struts.config.ControllerConfig의 하위 클래스여야 하며 컨트롤러 정보를 포함한 Config 빈을 구현하는 클래스이다. ControllerConfig 클래스는 값을 지정하지 않은 경우 기본 클래스 이다. |
| contentType | 응답 결과를 보낼 때 사용하는 컨텐트 타입. 이 속성은 선택적으로 사용하며 기본 값은 "text/html"이다. 이 속성에 지정한 값이 있더라도 액션이나 JSP 페이지에서 지정한 컨텐트 타입이 우선한다. |
| debug | 현재 어플리케이션의 디버깅 레벨. 이 속성의 값은 내부적으로 일어나는 이벤트들을 얼마만큼 저장할지를 나타낸다. 값이 클수록 더 많은 로깅 정보들이 축적된다. 이 속성은 선택적이며 기본값은 0으로 로깅 정보를 기록하지 않는다는 의미이다. |
| forwardPattern | /로 시작하는 (contextRelative 속성이 false일 경우) 상대 컨텍스트 경로에 forward 요소의 path 속성이 어떻게 매핑되는지에 대한 대체 패턴. 이 값은 아래 항목으로 구성된다. . $A –하위 어플리케이션의 어플리케이션 접두어에 의한 대체 . $P – 선택한 forward 요소의 path 속성에 의한 대체 . $$ -- URL 에서 $ 표시 그대로 표현됨 . $x (x는 위에 정의되지 않은 다른 표시 ) – 추후 사용을 위해 예약됨 이 속성의 값을 지정하지 않은 경우 기본 forwardPattern은 forwards 행위에 직접 입력한 것과 일치하도록 하는 $A$P 패턴이다. |
| inputForward | action 의 input 파라미터를 최종 URL로 사용할 forward or global-forward 의 이름이길 원하면 true 로 설정한다. false 이면 sub application 의 상대경로로 간주한다. |
| locale | 기본값 false. 사용자의 지역정보를 사용자 세션에 저장할지 여부 |
| maxFileSize | 기본값 250M, 파일 업로드 시 파일의 최대 요량으로 K,M,G 단위를 붙여 사용한다. |
| multipartClass | Multipart 요청에 대한 처리를 담당하는 클래스의 전체 이름. 파일 업로드 시 사용. 기본값은 org.apache.struts.upload.DiskMultipartRequestHandler |
| nocache | 기본값은 false, request 의 응답처리에서 HTTP 헤더를 'nocache'로 설정 할 지에 대한 Boolean 값. Optional |
| pagePattern | 커스텀 태그를 사용하는 페이지의 page 속성이 컨텍스트 상대 URL 경로에 매핑 방법에 대한 대체 패턴. 이 속성의 값은 아래 항목들로 구성된다. . $A –하위 어플리케이션의 어플리케이션 접두어에 의한 대체 . $P – 선택한 forward 요소의 path 속성에 의한 대체 . $$ -- URL 에서 $ 표시 그대로 표현됨 . $x (x는 위에 정의되지 않은 다른 표시 ) – 추후 사용을 위해 예약됨 이 속성의 값을 지정하지 않은 경우 기본 pagePattern 은 page 속성의 URL 값과 일치하도록 하는 $A$P 패턴이다. |
| processorClass | 사용자의 요청을 처리할 클래스의 전체 이름. 여기에 지정한 클래스는 org.apache.struts.action.RequestProcessor 클래스의 하위 클래스가 된다. 기본 값은 RequestProcessor 이다. |
| tempDir | 파일 업로드 시 사용할 임시 디렉터리. Optional |
<contoller contentType="text/html;charset=euc-kr" debug="3" local="true" nocache="true" processorClass="anyframe.web.struts.common.action.DefaultRequestProcessor" />
| Name | Description |
| className | message-resources의 정보를 포함하는 설정 빈을 구현하는 클래스 이름. 여기에 지정한 클래스는 org.apache.struts.config.MessageResourcesConfig 클래스의 하위 클래스여야 한다. 기본 클래스는 MessageResourcesConfig 이다. Optional. |
| factory | 사용할 MessageResourcesFactory 클래스의 전체 클래스 이름. org.apache.struts.util.PropertyMessageResources 가 기본 클래스 이다. |
| key | 메시지 리소스 번들이 저장될 서블릿 컨텍스트 속성. 이 속성은 optional. 기본 값은 Action.MESSAGES_KEY 에 의해 지정된다. 기본 번들로 리소스 번들 하나만 지정된다. |
| null | 정의되지 않은 메시지 키가 사용된 경우 이를 MessageResources 의 하위 클래스에서 어떻게 처리할지 나타내는 Boolean 값. true 로 설정하면 빈 문자열을 돌려준다. false로 설정하면 "global.label.missing" 과 같은 문자열을 되돌려준다. 기본값은 true. |
| parameter | 리소스 번들의 이름. 예를 들어, 리소스 번들 이름이 ApplicationResources.properties 이면 이 속성의 값은 ApplicationResources가 된다. 이 속성은 반드시 정의해야 한다. 만일 리소스 번들이 패키지화되어 있다면 해당 패키지의 이름을 포함한 전체 이름을 지정해야 한다. |
<message-resources parameter="struts.webapp.example.ApplicationResources"/>
<message-resources
parameter="struts.webapp.example.AlternateApplicationResources"
key="alternate">
</message-resources>
| Name | Description |
| className | Plug-In 클래스의 전체 이름을 나타내며, 해당 클래스는 반드시 Plug-In인터페이스를 구현해야 한다. |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in>