struts로 검색한 결과 :: 시소커뮤니티[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로 검색한 결과
등록일:2008-03-16 11:47:23
작성자:
제목:Struts 2 Tutorial - 11.Struts 2 Redirect Action


본 튜토리얼은 제가 struts 2를 공부할 목적으로 아래의 원문에 링크된 문서를 번역하여 정리한 것입니다.
원문: http://www.roseindia.net/struts/struts2/actions/struts-2-redirect-action.shtml



이번 섹션에서는, 스트럿츠2 리다이렉트 액션에 친숙해질 것입니다. 그리고 스트럿츠 2 어플리케이션에서 이것을 사용하는 방법을 배울 것입니다.

Post 후 Redirect: 이 Post 패턴은 스트럿츠 2에 의해 지원된다. 이것은 웹 어플리케이션의 일반적인 패턴입니다. 액션은 다른 액션으로 리다이렉트욉니다. 리다이렉트액션을 페이지를 표시하기 위해 일반적으로 사용됩니다.

리 다이렉트 액션 결과: 이것은 스트럿츠 2에 의해 지원되는 리다이렉트 패텬입니다. ActionMapperFactory가 제공하는 ActionMapper는 지정된 액션을 invoked하는 URL로 브라우저를 리다이렉트하려고 사용합니다. 아래의 스트럿츠 2 어플르케이션에서 이것의 간단한 구현 예제를 볼 수 있습니다.

리다이렉트 동적 파라미터: 액션-리다이렉트는 아래의 파라미터를 가집니다.

    * actionName
    * namespace
    * method
    * encode
    * parse
    * location
    * prependServletContext

리다이렉트 액션을 개발하기 위핸 예제를 만들기 위한 단계를 따라하세요.

Step 1: struts.xml 파일을 생성하고 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>

    <!-- Rose India struts 2 Tutorials -->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
<include file="struts-default.xml"/>
    <package name="roseindia" namespace="/roseindia" extends="struts-default">

       
    <!-- Redirect Action -->

     <action name="showAjaxLoginCancelForm">
      <result>/pages/ajaxloginCancel.jsp</result>
     </action>

    <action name="ajaxloginCancel" class="net.roseindia.Login">
      <result  name="input">/pages/ajaxloginCancel.jsp</result>
      <result  name="error">/pages/ajaxloginCancel.jsp</result>
      <result name="cancel" type="redirect">/pages/ajaxloginCancel.jsp</result>
      <result>/pages/ajaxloginsuccess.jsp</result>
    </action>
   
         <!-- Add actions here -->
    </package>


    <!-- Add packages here -->

</struts>

Step 2 : 입력 폼을 생성합니다.

ajaxloginCancel.jsp

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
  <head>
    <s:head theme="ajax" debug="true"/>
  </head>
  <body>
    <s:div id="loginDiv" theme="ajax">
    <div style="width: 300px;border-style: solid">
      <s:form action="ajaxloginCancel"  validate="true">
        <tr>
          <td colspan="2">
            Login
          </td>
        </tr>
        <tr>
          <td colspan="2">
            <s:actionerror />
            <s:fielderror />
          </td> 
          <s:textfield name="username" label="Login name"/>
          <s:password name="password" label="Password"/>
          <s:submit value="Submit" theme="ajax" targets="loginDiv" notifyTopics="/ajaxloginCancel"/>
          <s:submit action="showAjaxLoginCancelForm" value="Cancel" onclick="form.onsubmit=null"/>
         
      </s:form>
    </div>
    </s:div>
  </body>
</html>

Step 3 : 액션 클래스를 생성합니다.
Login.java

package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;


/**
 * <p> Validate a user login. </p>
 */
public  class Login  extends ActionSupport {


    public String execute() throws Exception {
    if(!getUsername().equals("Admin") || !getPassword().equals("Admin")){
            addActionError("Invalid user name or password! Please try again!");
            return ERROR;
    }
    if(getUsername().equals("Admin") || getPassword().equals("Admin")){
      return SUCCESS;
    }else{
      return NONE;
    }
  }


    // ---- Username property ----

    /**
     * <p>Field to store User username.</p>
     * <p/>
     */
    private String username = null;


    /**
     * <p>Provide User username.</p>
     *
     * @return Returns the User username.
     */
    public String getUsername() {
        return username;
    }

    /**
     * <p>Store new User username</p>
     *
     * @param value The username to set.
     */
    public void setUsername(String value) {
        username = value;
    }

    // ---- Username property ----

    /**
     * <p>Field to store User password.</p>
     * <p/>
     */
    private String password = null;


    /**
     * <p>Provide User password.</p>
     *
     * @return Returns the User password.
     */
    public String getPassword() {
        return password;
    }

    /**
     * <p>Store new User password</p>
     *
     * @param value The password to set.
     */
    public void setPassword(String value) {
        password = value;
    }

}

Step 4 : 적절한 validator를 생성한다.
validation.xml 포맷은 <ActionClassName>-validation.xml 이거나 <ActionClassName>-<ActionAliasName>-validation.xml 중에 하나이다.

Login-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
      "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
      "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
     
<validators>
  <field name="username">
    <field-validator type="requiredstring">
      <param name="trim">true</param>
      <message>Login name is required</message>
    </field-validator>
  </field>
  <field name="password">
    <field-validator type="requiredstring">
      <param name="trim">true</param>
      <message>Password is required</message>
    </field-validator>
  </field>
</validators>

정확한 사용자 이름과 패스워드를 입력하면 사용자는 ajaxloginsuccess.jsp 페이지를 볼 수 있다.

ajaxloginsuccess.jsp
<html>
  <head>
    <title>Login Success</title>
  </head>
  <body>
    <p align="center"><font color="#000080" size="5">Login Successful !</font></p>
    <h1> Welcome to <%=request.getParameter("username")%>  </h1>
  </body>
</html>

출력:

어플리케이션이 실행(http://localhost:8080/struts2tutorial/roseindia/showAjaxLoginCancelForm.action)되면 아래와 같은 결과를 보여줍니다.
http://localhost:8080/<font style='background-color: rgb(51, 51, 51);' color='#ffff00' size='4'>struts</font>2tutorial/roseindia/showAjaxLoginCancelForm.action

http://localhost:8080/struts2tutorial/roseindia/showAjaxLoginCancelForm.action



아무것도 입력하지 않고 "Submit"버튼을 클릭하면 아래와 같은 결과를 얻을 수 있다.
http://localhost:8080/<font style='background-color: rgb(51, 51, 51);' color='#ffff00' size='4'>struts</font>2tutorial/roseindia/showAjaxLoginCancelForm.action

http://localhost:8080/struts2tutorial/roseindia/showAjaxLoginCancelForm.action


만약 "Cancel"버튼을 클릭하면 리다이렉트액션이 실행되고 아래의 결과를 제공한다.
http://localhost:8080/<font style='background-color: rgb(51, 51, 51);' color='#ffff00' size='4'>struts</font>2tutorial/roseindia/ajaxloginCancel.action

http://localhost:8080/struts2tutorial/roseindia/ajaxloginCancel.action