struts-config.xml로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts-config.xml로 검색한 결과
등록일:2008-03-16 00:36:04
작성자:
제목:Struts에서 ActionForm 사용하기


ActionForm의  역할

  

          &#8226;  HTML  폼("<input  type='text'  name='phone'/>"  형식)으로  부터  받은  입력은  ActionForm  빈으로  전달
              되고(ActionForm  객체에  대해  setPhone(request.getAttribute(“phone”)  과  같은  호출이  일어난다),  프
              라퍼티(파라미터)에  대한  검증이  끝나면  폼으로  부터  받은  입력  값을  잘  정돈된  자바빈  데이타로  만들어
              Action  에  전달한다.


          &#8226;  주의:  ActionForm  객체를  직접  이용해서  작업을  수행(비지니스  프로세스  수행  -  모델  부분)을  해서는  안
              된다!  -  모델  부분은  컨트롤러와  뷰와  완전히  분리된  상태로  작성해야  한다.  ActionForm은  컨트롤러에  속
              한다.


&#8226;  ActionForm  을  구현하려면..


        &#8226;  org.apache.struts.action.ActionForm  클래스를  상속  받아야  한다.


        &#8226;  각  프라터티는  HTML  Form의  Input의  name과(<input  name=””/>)  같은  이름을  가져야  한다.


        &#8226;  각  프라퍼티별로  Setter와  Getter가  있으면  된다.  Setter와  Getter가  꼭  둘  다  있을  필요는  없다.


        &#8226;  각  프라퍼티는  되도록  String  과  boolean  형으로  만든다.  잘못  입력한  데이터를  다시  사용자의  입력화면
              에  보여주려면  잘  못  입력한  데이타가  String  으로  보전되어  있어야  하기  때문이다.  ActionForm의  프라퍼
              티를  int  등의  형으로  만들면  사용자가  잘못  입력한  데이터  중에서  숫자가  아닌  부분이  모두  사라지게  되
              기  때문에  무엇을  어떻게  잘  못  입력했는지  알  수  없게  된다.


        &#8226;  각  프라퍼티들을  ActionForm  객체에  채우기  전에  먼저  초기화  작업을  거치고  싶다면  “public  void  reset
            (ActionMapping  mapping,  HttpServletRequest  request)”  메소드를  구현해야  한다.


        &#8226;  파라미터  값을  ActionForm에서  Action으로  전달하기  전에  유효성  검증  과정을  거치려면  “public
              ActionErrors  validate(ActionMapping  mapping,  HttpServletRequest  request)”  메소드를  구현해야  한
              다.  (ActionErrors를  리턴한다는  것  주의)


        &#8226;  struts-config.xml에  다음과  같은  부분을  추가하여,  ActionForm을  등록한다.  등록된  ActionForm은  여러
            Action에서  사용될  수도  있다.

          ex)

                    <struts-config>
                            <form-beans>
                                    <form-beans  name="폼의이름"    type="myproject.form.FormClass"/>
                            </form-beans>
                    </struts-config>

  

&#8226;  ActionMessages의  역활

            ActionMessages의  역활은  기본적으로  컨트롤러(그중에서도  ActionForm과  Action)에서  수행도중  발생한  오류나  기타  메시지들을

            저장한후  뷰  단에서  보여  줄  수  있도록  하는  역활을  한다.

        

            이제,  ActionForm과    ActionMessages를  기본적으로  사용한  얘제를  보여준다.  사용자가  넘긴  username과  password  파라미터가

            빈  값이거나  공백등을  포함한다면  ActionForm에서  오류가  발생하여  다시  로그인  폼으로  돌아가서  잘못된  부분에  대한  에러  메시지

            를  출력하는  예제이다.

      

                또한  로그아웃  기능을  포함하고,  로그인  폼은  POST방식으로  전달되도록  하며,  몇몇  JSP  페이지들은  Action이  불필요하더라도

            모든  JSP가  스트럿츠  컨트롤러를  통해  보여질  수  있도록  설정한  예제이다.

  

            &#8226;  WEB-INF/config/struts-config.xml을  다음과  같이  작성한다.

                  ex)
                      <?xml  version="1.0"  encoding="UTF-8"  ?>


                      <struts-config>
                                  <form-beans>        <!--  Login2를  위한  ActionForm  설정  -->
                                            <form-bean  name="login2Form"  type="strutsguide.forms.Login2Form"></form-bean>
                                  </form-beans>
                                  <global-forwards>    <!--  Login2  의  로그인  폼  화면으로  이동하기  위한  global  forward  -->
                                            <forward  name="login2Form"  path="/login2/loginForm.do"  redirect="true"  />
                                  </global-forwards>
                                  <action-mappings>
                                            <action  path="/Welcome"  forward="/Welcome.jsp"  />

                                            <!--  //  Login2를  위한  Action  Mapping  시작  -->
                                            <!--  로그인  폼  화면  출력  액션  -->
                                            <action  path="/login2/loginForm"  forward="/login2/loginForm.jsp"  />
                                            <!--  로그인을  수행하는  액션  -->
                                            <action  path="/login2/login"  type="strutsguide.actions.Login2Action"  name="login2Form"

                                                                                    validate="true"  scope="request"  input="/login2/loginForm.jsp">
                                            </action>
                                            <!--  로그  아웃  수행  액션  -->
                                            <action  path="/login2/logout"  type="strutsguide.actions.LogoutAction"  />
                                            <!--  //  Login2  를  위한  Action  Mapping  끝  -->
                                            <action  path="/login1/logInForm"  forward="/login1/logInForm.jsp"  />
                                            <action  path="/login1/logIn"  type="strutsguide.actions.Login1Action"  validate="false">
                                                      <forward  name="success"  path="/login1/logInSuccess.jsp"  redirect="true"  />
                                                      <forward  name="fail"  path="/login1/logInFail.jsp"  />
                                            </action>
                                </action-mappings>

                                <!--
                                        login2에서  메시지  출력에  사용할  프라퍼티  파일.
                                        strutsguide.resource  패키지의  application.properties  파일임을  의미한다.
                                  -->
                                  <message-resources  parameter="strutsguide.resources.application"  />
                      </struts-config>

  

            &#8226;  loginForm.jsp  다음과  같이  작성

  

<%@page  contentType="text/html;  charset=euc-kr"%>
<%@taglib  uri="/WEB-INF/tlds/struts-html.tld"  prefix="html"%>
<%@taglib  uri="/WEB-INF/tlds/struts-bean.tld"  prefix="bean"%>
<%@taglib  uri="/WEB-INF/tlds/struts-logic.tld"  prefix="logic"%>

<html:html>
      <head>
            <meta  http-equiv="Content-Type"  content="text/html;  charset=euc-kr">
            <title>로그인  폼</title>
        </head>
        <body>
                <h1>로그인  폼</h1>


                <logic:present  name="userInfo"  scope="session">
                        <%--  session  스코프에  "userInfo"  라는  Attribute가  존재하면  이  부분이  실행된다.  --%>
                        <b>이미  로그인  하셨습니다.</b><br  />
                        로그인한  사용자명  :  <bean:write  name="userInfo"  property="userName"  scope="session"/><br  />
                        전화번호  :  <bean:write  name="userInfo"  property="phone"  scope="session"/><br  />
                        이메일  :  <bean:write  name="userInfo"  property="email"  scope="session"/><br  />
                      <html:link  action="/login2/logout">로그아웃하기</html:link>
                </logic:present>
                <logic:notPresent  name="userInfo"  scope="session">
                      <--  session  스코프에  "userInfo"라는  Attribute가  존재하지  않으면  이  부분이  실행된다.--%>
                      <b>로그인  하십시오.</b><br/>
                </logic:notPresent>
                <!--  폼의  데이터를  "login.do"로  전송한다.  -->
                <html:form  action="/login2/login"  method="POST"  focus="username">
                <html:messages  id="msg"  message="true">
                <%--
                            ActionMessages.GLOBAL_MESSAGE  키로  저장된  ActionMessage  객체가  없다면  이  부분은  실행되지  않는다.
                    --%>
                        <b><bean:write  name="msg"/></b>  <br  />
                  </html:messages>


                    Username  :  <html:text  property="username"/>


                  <html:messages  id="msg"  property="invalidUsernameError">
                          <%--invalidUsernameError  라는  키로  저장된  ActionMessage  객체가  없다면  이  부분은  실행되지  않는다.  --%>
                          <b><bean:write  name="msg"/></b>
                    </html:messages>
                    <br  />


                    Password  :  <html:password  property="password"  redisplay="false"/>


                  <html:messages  id="msg"  property="invalidPasswordError">
                          <%--  invalidPasswordError  라는  키로  저장된  ActionMessage  객체가  없다면  이  부분은  실행되지  않는다.  --%>
                          <b><bean:write  name="msg"/></b>
                  </html:messages>
                  <br  />
                  <html:submit  value="로그인"/>      <html:reset  value="초기화"  />
                  </html:form>
            </body>
      </html:html>

[출처]  [본문스크랩]  Struts에서  ActionForm  사용하기|작성자  어린양이
http://blog.naver.com/dlckdeo81/41814127