태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


<display-name>
<!-- 자유롭게 기술, '<','>','&' 등의 특수문자는 <![CDATA[...]]>안에 기술 -->
<!-- <description> 자유롭게 기술, '<','>','&' 등의 특수문자는 <![CDATA[...]]>안에 기술 -->

<data-sources>
 <data-source>
  <set-property property="autoCommit" value="true"/>
  <set-property property="description" value="My Data Source"/>
  <set-property property="driverClass" value="com.mysql.jdbc.Driver"/>
  <set-property property="maxCount" value="10"/>
  <set-property property="minCount" value="4"/>
  <set-property property="user" value="username"/>
  <set-property property="password" value="password"/>
  <set-property property="url" value="jdbc:mysql://localhost:3306/database"/>
 </data-source>
</data-sources>

<!--
DataSource dataSource =  (DataSource)servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
-->

<form-beans>
 <form-bean name="boardForm" type="forms.BoardForm">
 <form-bean name="listForm" type="forms.listForm">
</form-beans>

<!--
form-bean에 정의된 내용은 org.apache.struts.action.ActionFormBean클래스에 저장된다.

form-bean의 속성들

className : ActionFormBean을 상속했을 경우에 생성한 클래스명을 기록
dynamic : DynaActionForm을 사용할 경우 true로 지정
name : 생성한 액션폼의 인스턴스명 정의
type : 생성한 액션폼의 패키지명을 포함한 클래스명을 기록

form-bean의 하위 요소들

icon : GUI Tool을 사용할 경우 표시될 icon 이미지의 경로
display-name : GUI Tool을 사용할 경우 표시될 이름
description : form-bean의 설명
set-property : form-bean 속성으로 className이 지정된 경우 전달된 변수
form-property : DynaActionForm을 사용할 경우 DynaActionForm이 가질 변수들을 정의
-->

<global-exceptions>
 <exception type="exception.BoardException" key="exception.board" scope="request" path="/exception/BoardMessages.jsp"/>
</global-exceptions>

<!--
exception의 속성들

bundle : locale 값에 해당하는 에러메시지를 출력할 경우 사용할 프로퍼티 지정
className : ExceptionConfig를 상속했을 경우에 생성한 클래스명을 기록
handler : ExceptionHandler를 상속했을 경우에 생성한 클래스명을 기록
key : 출력할 에러메시지의 프로퍼티의 key를 기록
path : 예외가 발생했을 경우 forward 할 경로를 기록
scope : ActionError를 저장할 스코프 기록
type : exception을 처리할 클래스명

exception의 하위 요소들

icon : GUI Tool을 사용할 경우 표시될 icon 이미지의 경로
display-name : GUI Tool을 사용할 경우 표시될 이름
description : exception의 설명
set-property : exception 속성으로 className이나 handler를 지정한 경우 전달된 변수
 -->

<global-forwards>
 <forward name="common" path="/index.jsp" redirect="false"/>
</global-forwards>

<!--
module내에서 공통적으로 사용할 forward를 정의
forwards요소에 정의된 값은 org.apache.struts.action.ActionForward에 저장됨

forward의 속성들

className : ActionForward를 상속받은 클래스명을 기록
contextRelative : "true"로 지정할 경우 application의 Context path로 부터 경로가 사용된다
module : path 속성으로 지정된 경로가 여기에 지정된 경로의 상대경로로 사용된다.
name : Action에서 사용할 논리적인 이름
path : forward의 실제 경로
redirect : 초기화를 해서 forward를 할 경우 사용
 -->

<action-mappings>
 <action path="/login" type="org.apache.struts.actions.ForwardAction" scope="request" parameter="/login/login.jsp" validate="false"/>
 <action path="/loginProc" type="actions.LoginAction" name="loginForm" scope="request" input="/login/login.jsp" validate="true">
  <forward name="success" redirect="false" path="/member/main.jsp"/>
  <forward name="success" redirect="false" path="/member/main.jsp"/>
 </action>
</action-mapping>

<!--
struts-config.xml의 가장 중요한 요소로 org.apache.struts.action.ActionMapping에 저장된다.
attribute : ActionForm의 이름, 지정하지 않으면 name 속성에서 지정한 이름을 사용한다.
className : ActionMapping을 상속받은 클래스명을 기록
forward : 포워드할 경로를 지정
include : 인클루드할 경로를 지정
input : ActionForm에서 에러가 발생하면 되돌아갈 경로 지정
name :  ActionForm의 이름
path :  <action> 요소가 매핑 될 request경로
parameter : Action에 전달해줄 변수, mapping.getParameter()메소드를 통해서 사용
prefix : reqeust 파라메터 중에서 특정 이름으로 시작하는 변수만 ActionForm에서 사용할 때 사용, name 속성이 지정되어 있어야 한다. 예) prefix="mem_"
suffix : reqeust 파라메터 중에서 특정 이름으로 끝나는 변수만 ActionForm에서 사용할 때 사용, name 속성이 지정되어 있어야 한다. 예) prefix="Shop"
roles : 특정 사용자만 접근하도록 할 때 사용, 예) role="admin,manager"
type : Action 클래스명
unknown : "true"로 지정하면 정의되지 않은 요청 경로가 있을 경우 기본으로 호출 될 경로로 사용, module 안에서 한개만 사용할 수 있다
validate : "true"로 지정하면 ActionForm의 validate()를 호출한다.

action의 하위 요소들

icon : GUI Tool을 사용할 경우 표시될 icon 이미지의 경로
display-name : GUI Tool을 사용할 경우 표시될 이름
description : action의 설명
set-property : action의 속성으로 className을 지정한 경우 ActionMapping에 전달된 변수
exception : Action 내에서 발생할 수 있는 exception 처리를 지정
forward : Action 내에서 선택할 수 있는 ActionForward를 지정
 -->

<controller contentType="text/html; charset=utf-8" locale="true"/>

<!--
bufferSize : 파일 업로드를 처리할 때 사용할 버퍼 메모리 크기, default값 4096Byte
className  : ControllerConfig를 상속받은 클래스명을 기록
contentType : module의 기본 컨텐츠타입 지정, default값 "text/html", 다국어를 위해 "text/html; charset=utf-8"을 사용하는 것을 권장
forwardPatten : forward 요소의 path 속성이 "/"로 시작하고 contextRelative가 true인 경우의 매핑을 정의, default 값은 $M$P로 되어 있음,
"$M" : module prefix를 매핑
"$P" : forward요소의 path 속성을 매핑
"$$" : '$'문자를 매핑
inputForward : "true"로 지정하면 global-forward 또는 action의 forward 요소의 이름을 action의 input 속성의 값으로 사용한다. default값은 "false"이며 action의 input 속성 값으로 action의 path를 사용한다.
locale : "true"로 지정하면 사용자의 locale 값을 세션에 저정한다.
maxFileSize : 업로드 파일의 최대 크기를 지정, "K", "M", "G"단위를 사용, default 값은 "250M"
memFileSize : 메모리에 보관할 업로드 파일의 최대 크기를 지정, 파일의 크기가 이 값보다 크면 tempDir에 저장함, default값은 "250K"
multipartClass : multipart request를 처리할 클래스명, 지정하지 않으면 CommonsMultipartRequestHandler가 사용됨
nocache : "true"로 지정하면 Browser의 캐시기능을 사용하지 않음
pagePattern : struts tag library의 page 속성에 대한 패턴 정의,  default값은 "$M$P"
processorClass : RequestProcessor를 상속받은 클래스명을 기록
tempDir : 파일 업로드에 사용하는 임시폴더
 -->

<message-resource parameter="resource/Messages"/>

<!--
className : MessageResourcesConfig를 상속받은 클래스명을 기록
factory : MessageResourcesFactory를 상속받은 클래스명을 기록, default값은 PropertyMessageResourcesFactory를 사용
key : 메시지 리소스가 ServletContext에 저장될때 사용될 이름, default값은 Globals.MESSAGES_KEY, 루트 모듈이 아닌 하위 모듈일때에는 "/"와 모듈 접두사(모듈명)가 key값 뒤에 붙는다.
null : "true"로 지정하면  메시지 key가 없을 때 null을 반환
parameter : MessageResourcesFactory에 전달할 메지지 프로퍼티 지정
 -->

 <plug-in className="org.apache.struts.tiles.TilesPlugin">
 <set-property property="definition-config" value="/WEB-INF/tiles/tiles-defs.xml"/>
 <set-property property="definitions-debug" value="2"/>
 </plug-in>
  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
 <set-property property="pathnames" value="/WEB-INF/validator/validator-rules.xml,/WEB-INF/validator/validator.xml"/>
 </plug-in>




출처 : 파워유저가 알려주는 스트럿츠프로그래밍, 137-148, 가메출판사

top

Trackback Address :: http://www.ssial.com/trackback/287 관련글 쓰기

Write a comment


[STRUTS]validator 기능 사용하기

정의 순서.

1.
 액션폼빈에Validator처리를 행한다는 기술을 한다.

2.
 액션폼빈의 각 속성에 적용할Validator룰을 validation.xml에 기술한다. Validator자체의 동작은 validator-rules.xml에 정의된다. validator-rules.xml은 사전에 정의되어 있는 것을 사용한다.

3.
 메세지 리소스 파일에validation.xml의 룰에 만족하지 않았을 때표시할 에러메세지를 기술한다.

4.
 에러 메세지를 표시하기위한 JSP프로그램을 작성한다.

5.
 struts-config.xml에 Validator관련 설정을 한다.
 


1. 어플리케이션 폼빈 작성

【ExValidatorForm.java】

package struts;


import org.apache.struts.validator.*;

import org.apache.struts.action.*;


//Validator를 사용하는 경우는ValidatorForm클래스를 계승합니다.

//그 외는 일반적인 어플리케이션 폼빈의 작성방법과 같습니다.

public final class ExValidatorForm extends ValidatorForm {

  private String requireV;

  private String validwhenV;

  private String countV;

  private String patternV;

  private String dateV;

  private String rangeV;

  private String emailV;


  public void setRequireV(String requireV)

    {this.requireV = requireV;}

  public void setValidwhenV(String validwhenV)

    {this.validwhenV = validwhenV;}

  public void setCountV(String countV)

    {this.countV = countV;}

  public void setPatternV(String patternV)

    {this.patternV = patternV;}

  public void setDateV(String dateV)

    {this.dateV = dateV;}

  public void setRangeV(String rangeV)

    {this.rangeV = rangeV;}

  public void setEmailV(String emailV)

    {this.emailV = emailV;}


  public String getRequireV() {return requireV;}

  public String getValidwhenV() {return validwhenV;}

  public String getCountV() {return countV;}

  public String getPatternV() {return patternV;}

  public String getDateV() {return dateV;}

  public String getRangeV() {return rangeV;}

  public String getEmailV() {return emailV;}

}
 



2. validation.xml 작성

【validation.xml】

<?xml version="1.0" encoding="ISO-8859-1" ?>


<!DOCTYPE form-validation PUBLIC

 "-//Apache Software Foundation//

  DTD Commons Validator Rules Configuration 1.1.3//EN"

 "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">


<form-validation>

  <formset>

    <!-- 적용할 어플리케이션 폼빈을 논리명으로 지정 -->

    <form name="ExValidator">

      <!-- required 룰 지정 -->

      <field property="requireV" depends="required">

      </field>

      <!-- validwhen룰 지정

           validwhen의 조건식을 test변수로 지정

           *this*는 프로퍼티 validwhenV를 나타냄 -->

      <field property="validwhenV" depends="validwhen">

        <msg name="validwhen" key="errors.validwhen" />

        <var>

        <var-name>test</var-name>

        <var-value>

          ((*this* != null) and (countV != null))

        </var-value>

        </var>

      </field>

      <!-- minlength룰 지정

           minlength변수로 조건의 최저입력수를 지정 -->

      <field property="countV" depends="minlength">

        <var>

        <var-name>minlength</var-name>

        <var-value>4</var-value>

        </var>

      </field>

      <!-- mask룰 지정

           mask변수로 조건패턴을 지정 -->

      <field property="patternV" depends="mask">

        <var>

        <var-name>mask</var-name>

        <var-value>^[a-zA-Z]*$</var-value>

        </var>

      </field>

      <!-- date룰 지정

           datePattern변수로 조건의 일자 패턴을 지정 -->

      <field property="dateV" depends="date">

        <msg name="date" key="errors.date" />

        <var>

        <var-name>datePattern</var-name>

        <var-value>yyyy/mm/dd</var-value>

        </var>

      </field>

      <!-- intRange 룰 지정

           max변수, min변수로 조건의 범위를 지정 -->

      <field property="rangeV" depends="intRange">

        <var>

          <var-name>min</var-name>

          <var-value>4</var-value>

        </var>

        <var>

          <var-name>max</var-name>

          <var-value>16</var-value>

        </var>

      </field>

      <!-- email 룰 지정 -->

      <field property="emailV" depends="email">

      </field>

    </form>

  </formset>

</form-validation>
 



3. 메세지 리소스 파일 작성

【application.properties】
 

errors.required =requireV is wrong.<br>

errors.validwhen=validwhenV is wrong.<br>

errors.minlength=countV is wrong.<br>

errors.invalid  =patternV is wrong.<br>

errors.date     =dateV is wrong.<br>

errors.range    =rangeV is wrong.<br>

errors.email    =emailV is wrong.<br>
 
 



4. JSP 작성

【error.jsp】Validator룰에 만족하지 않았을 때에 표시할 에러화면

<%@ page contentType="text/html; charset=Shift_JIS" %>

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>


<html:html>

<head><title>에러화면</title></head>

<body>


에러 메세지

<br>
<%-- <html:messages>태그로 에러 메세지를 표시합니다.

에러 메세지를 표시할 때는message속성을 false로 합니다. --%>

<html:messages id="msg" message="false">

  <%-- filter속성을 false로 함으로써 메세지에

       HTML태그를 쓸 수 있습니다. True로 하면 HTML태그가 있는 경우 치환문자(&lt;, &gt; 등)으로 변환됩니다. --%>

  <bean:write name="msg" ignore="true" filter="false"/>

</html:messages>


</body>

</html:html>
 


【exValidator.jsp】Validator체크를 하는데 사용될 입력폼 화면

<%@ page contentType="text/html; charset=Shift_JIS" %>

<%@ taglib uri="/tags/struts-html" prefix="html" %>


<html:html>

<head><title>Validator처리</title></head>

<body>


<html:form action="/ExValidator">

  필수입력

  <br>

  <html:text property="requireV" size="16"/>

  <br><br>

  validwhen

  <br>

  <html:text property="validwhenV" size="16"/>

  <br><br>

  문자수확인

  <br>

  <html:text property="countV" size="16"/>

  <br><br>

  패턴확인

  <br>

  <html:text property="patternV" size="16"/>

  <br><br>

  일자확인

  <br>

  <html:text property="dateV" size="16"/>

  <br><br>

  범위확인

  <br>

  <html:text property="rangeV" size="16"/>

  <br><br>

  메일 어드레스 확인

  <br>

  <html:text property="emailV" size="16"/>

  <br><br>

  <html:submit property="submit" value="송신"/>

</html:form>


</body>

</html:html>
 



5. struts-config.xml 작성

【struts-config.xml】

<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE struts-config PUBLIC

 "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

 "http://struts.apache.org/dtds/struts-config_1_2.dtd">


<struts-config>


 <!-- 액션폼빈 지정 -->

 <form-beans>

  <form-bean name="ExValidator"

             type="struts.ExValidatorForm" />

 </form-beans>


 <!-- 액션 클래스 지정 -->

 <action-mappings>

  <!-- Validator를 사용하는 경우validate속성을 true로 지정.

       Validator 에러를 표시할 화면을 input속성으로 지정 -->

  <action path="/ExValidator"

          type="struts.ExValidatorAction"

          name="ExValidator"

          scope="request"

          validate="true"

          input="/error.jsp">

   <forward name="info" path="/exValidator2.jsp"/>

  </action>

 </action-mappings>


 <!-- 메세지 리소스 파일 지정 -->

 <message-resources parameter="resources.application"/>


 <!-- Validator 지정. 프로퍼티 pathnames의 값에

      validator-rules.xml과 validation.xml을 지정 -->

 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">

  <set-property property="pathnames"

   value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

 </plug-in>


</struts-config>
 



응용처리

1. 복수조건지정
<file>태그의 depends속성에 값을 복수 지정함으로써 체크할 조건을 복수로 지정할 수 있습니다. email형식 체크와 필수입력 체크 등으로 조건을 조합하여 지정할 수 있습니다.

【depends속성에 복수조건 지정】

<!-- email형식 체크와 필수입력 체크를 지정 -->

<field property="emailV" depends="email,required">

</field>

2.에러 메세지에 변수를 사용
<field>태그에 <argn>태그(n은 0~3까지)를 지정함으로서 에러 메세지에 상황에 맞는 메세지 문자를 넣을 수 있습니다. 이 메세지 문자는 메세지 리소스 파일을 이용하여 지정할 수 있거나, 직접 넣거나, <var>태그의 변수지정으로 넣을 수 있습니다.

직접 넣거나, <var>태그의 변수를 지정하는 경우에는 <argn>태그의 리소스 속성을 “false”로 해야 합니다.

【<argn>태그 지정】

・・・・・

<field property="countV" depends="minlength">

  <!-- 메세지에 "minlength.msg"을 지정 -->

  <arg0 key="minlength.msg" />

  <!-- <var>태그를 이용하여 minlength를 지정 -->

  <arg1 key="${var:minlength}" resource="false" />

  <var>

    <var-name>minlength</var-name>

    <var-value>4</var-value>

  </var>

</field>

・・・・・

【메세지 리소스 파일】

errors.minlength={0} needs over {1} characters.

minlength.msg=minlength

3.메세지 리소스 파일의 키를 지정
<field>태그에 <msg>태그를 지정함으로서 참조되는 메세지 리소스 파일의

키를 변경할 수가 있다.

【<msg>태그 지정】

・・・・・

<field property="requireV" depends="required">

  <!--에러시의 메세지 리소스 파일의 키를

       "errors.original.required" 로 변경-->

  <msg name="required" key="errors.original.required" />

</field>

・・・・・

4.동적 액션폼빈에Validator를 사용
동적 액션폼빈에 Validator를 사용할 수 있다.

struts-config.xml의 태그의 타입속성에DynaValidatorForm을 지정하는 것만으로 사용할 수 있다.

다른 부분은 액션폼빈의Validator 사용방법과 동일하다.

【<form-bean>태그에 DynaValidatorFrom을 지정】

・・・・・

  <form-beans>

    <!-- type속성에 DynaValidatorForm을 지정 -->

    <form-bean

     name="DynaForm"

     type="org.apache.struts.validator.DynaValidatorForm">

     <form-property

      name="requireV"

      type="java.lang.String" />

    </form-bean>

  </form-beans>


  <action-mappings>

    <action path="/ExValidator"

            type="struts.ExValidatorAction"

            name="DynaForm"

            scope="request"

            validate="true"

            input="/error.jsp">

      <forward name="info" path="/exValidator2.jsp"/>

    </action>

  </action-mappings>

・・・・・



출처 : http://dojeun.egloos.com/317876

top

Trackback Address :: http://www.ssial.com/trackback/284 관련글 쓰기

Write a comment


http://struts.apache.org/1.3.10/faqs/validator.html

http://struts.apache.org/1.3.10/apidocs/org/apache/struts/validator/package-summary.html#package_description
top

Trackback Address :: http://www.ssial.com/trackback/254 관련글 쓰기

Write a comment


http://www.jamesholmes.com/StrutsTCR/ 

http://www.jamesholmes.com/struts/console/
top

Trackback Address :: http://www.ssial.com/trackback/165 관련글 쓰기

Write a comment


http://ibatis.apache.org/javadownloads.cgi  <-- iBATIS 사용


http://wiki.javajigi.net/display/FRAMEWORK/Hibernate+Getting+Started  <-- Hibernate 사용

http://www.hibernate.org/159.558.html  <-- Struts 1.2.7 with XMoon 0.7.4 and Hibernate 3

http://download.kldp.net/jpetstoreplus/jpetstoreplus/  <-- JpetStoreplus
top

Trackback Address :: http://www.ssial.com/trackback/122 관련글 쓰기

Write a comment


http://www.okjsp.pe.kr/bbs?seq=58275

top

Trackback Address :: http://www.ssial.com/trackback/94 관련글 쓰기

Write a comment


다운로드 : http://www.hanb.co.kr/web/example/1254/
한빛출판사

top

Trackback Address :: http://www.ssial.com/trackback/41 관련글 쓰기

Write a comment