* ȸ¿ø°¡ÀÔ * ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ ã±â   ID PW

Last Modified : 2008.07.08

Struts °Ô½ÃÆÇ (»ó¼¼º¸±â,¼öÁ¤,»èÁ¦,»õ±Û¾²±â)

1. »ó¼¼º¸±â (view.do ¿äû)

¿äû¸í view.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º ViewAction

»ó¼¼º¸±â ¿äû »Ó¸¸ ¾Æ´Ï¶ó ¼öÁ¤È­¸é ¿äû, ¼öÁ¤Ã³¸® ¿äû,»èÁ¦Ã³¸® ¿äû, »õ±Û¾²±âÈ­¸é ¿äû,»õ±Ûó¸® ¿äû ¿¡¼­µµ ÀÌ¿ëÇϱâ À§ÇØ ¾Æ·¡¿Í °°Àº GulForm ÆûºóÀ» ¸¸µé¾ú½À´Ï´Ù.
¿©±â¼­ ÁÖÀÇ ±í°Ô ºÁ¾ß ÇÒ ºÎºÐÀº gulValue ¸â¹öº¯¼öÀÇ Å¸ÀÔÀÌ °Ô½Ã±Û Çϳª¸¦ ³ªÅ¸³»´Â Gul °´Ã¼ ŸÀÔÀ̶ó´Â °ÍÀÔ´Ï´Ù.
ÀÌÁ¦ GulForm ÀÇ ¸â¹öÀÎ gulValue ÀÇ ¸â¹ö(gulno,subject,content,signdate,ref,bcode) ¿¡ ÀÚµ¿ÀûÀ¸·Î °ªÀÌ ÀÔ·ÂµÇ°Ô ÇÏ·Á¸é ¾î¶»°Ô ÆÄ¶ó¹ÌÅͰ¡ Àü´ÞÇÏ¿©¾ß ÇÏ´ÂÁö list.jsp ±¸Çö Äڵ忡¼­ ÁÖ¸ñÇØ¼­ ºÁ¾ß ÇÕ´Ï´Ù.

list.jsp


.. Áß°£ »ý·« ..

<form id="frmView" name="frmView" action="view.do" method="post">
   <input type="hidden" name="gulValue.gulno" />
   <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
   <input type="hidden" name="curPage" value="<%=curPage %>" />
</form>

.. Áß°£ »ý·« ..


GulForm.java

package com.dadam.form;

import org.apache.struts.action.ActionForm;
import com.dadam.board.*;

public class GulForm extends ActionForm {
	
   private Gul gulValue = new Gul();
   private int curPage;

   public Gul getGulValue() {
      return gulValue;
   }
   public void setGulValue(Gul gul) {
      this.gulValue = gul;
   }
   public int getCurPage() {
      return curPage;
   }
   public void setCurPage(int curPage) {
      this.curPage = curPage;
   }
}

gulForm ¿¡¼­ gulno ¸¦ gulValue ¸â¹ö¸¦ ÀÌ¿ëÇØ¼­ ÃßÃâÇϰí ÀÖ½À´Ï´Ù.
»¡°£»öÀ¸·Î °­Á¶µÈ ºÎºÐÀ» º¸¸é execute ¸Þ¼ÒµåÀÇ ÆÄ¶ó¹ÌÅÍ·Î µé¾î¿Â ActionMapping ¸¦ °¡Áö°í view ¶õ À̸§À¸·Î ActonForward ¸¦ ã°í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

ViewAction.java

package com.dadam.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dadam.board.GulManager;

import com.dadam.form.*;

public class ViewAction extends Action {
   public ActionForward execute (
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {
      
      // Parameter
      GulForm gulForm = (GulForm) form;

      GulManager gulManager = new GulManager();
      
      int no = gulForm.getGulValue().getGulno();
      
      gulForm.setGulValue( gulManager.findGul( no ) );

      return mapping.findForward("view");
   }
}

»õ·Ó°Ô ¸¸µç ÆûºóÀ̹ǷΠform-beans ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®°¡ µÇµµ·Ï ¾Æ·¡ Äڵ带 struts-config.xml ¿¡ Ãß°¡ÇÕ´Ï´Ù.

struts-config.xml

<form-bean
   name="gulForm"
   type="com.dadam.form.GulForm"
/>

action ¿¤¸®¸ÕÆ®¸¦ action-mappings ÀÚ½Ä ¿¤¸®¸ÕÆ®°¡ µÇµµ·Ï struts-config.xml ¿¡ Ãß°¡ÇÕ´Ï´Ù.
»¡°£»öÀ¸·Î °­Á¶µÈ view´Â ViewAction ¿¡¼­ ÇØ´ç ActionForward ¸¦ ã±â À§ÇÑ °ªÀÔ´Ï´Ù.

struts-config.xml

<action
   path="/view"
   type="com.dadam.action.ViewAction"
   name="gulForm"
   scope="request"
   unknown="false"
   validate="false">
      <forward
         name="view"
         path="/struts/view.jsp"
         redirect="false"
      />
</action>

»ó¼¼º¸±â ¿äûÀÇ ºäÀÎ view.jsp ÀÔ´Ï´Ù.
Äڵ忡¼­ gulForm ÀÎ Àü´ÞµÇ´Â °ÍÀ» È®ÀÎÇϼ¼¿ä
ÀÌ·¸µí ÆûºóÀº HttpServletRequest¿¡ ÀúÀåµÇ¾î ºä±îÁö Àü´ÞµË´Ï´Ù.

view.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*" %>
<%@ page import="net.java_school.util.Log" %>
<%@ page import="com.dadam.board.*" %>
<%@ page import="com.dadam.form.*" %>
<%
   GulForm gulForm = (GulForm) request.getAttribute("gulForm");
   String board = gulForm.getGulValue().getBcode();
   int number = gulForm.getGulValue().getGulno();
   int curPage = gulForm.getCurPage();
   Gul gul = gulForm.getGulValue();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitonal.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Struts °Ô½ÃÆÇ : »ó¼¼º¸±â</title>
<script language="javascript">

   function goList() {
      var form = document.getElementById("frmList");
      form.submit();
   }

   function goModify() {
      var form = document.getElementById("frmModify");
      form.submit();
   }

   function goDelete() {
      var chk = confirm('Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?');
      if ( chk ) {
      var form = document.getElementById("frmDelete");
         form.submit();
      }
   }

</script>
</head>
<body>
<p>
   Á¦¸ñ : <%=gul.getSubject() %><br />
   µî·ÏÀÏ : <%=gul.getSigndate() %><br />
   Á¶È¸¼ö : <%=gul.getRef() %><br />
   º»¹® : <%=gul.getContent().replaceAll("\n", "<br />") %>
</p>
<p>
   <input type="button" value="¸ñ·Ï" onclick="javascript:goList()" />
   <input type="button" value="¼öÁ¤" onclick="javascript:goModify()" />
   <input type="button" value="»èÁ¦" onclick="javascript:goDelete()" />
</p>
<div id="form-grp">
   <form id="frmList" name="frmList" action="list.do" method="post">
      <input type="hidden" name="board" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
   </form>
   <form id="frmModify" name="frmModify" action="modify_form.do" method="post">
      <input type="hidden" name="gulValue.gulno" value="<%=number %>" />
      <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
   </form>
   <form id="frmDelete" name="frmDelete" action="delete.do" method="post">
      <input type="hidden" name="gulValue.gulno" value="<%=number %>" />
      <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
   </form>
</div>
</body>
</html>

2. ¼öÁ¤È­¸é ¿äû

¿äû¸í modify_form.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º ModifyFormAction

ModifyFormAction.java

package com.dadam.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dadam.board.GulManager;

import com.dadam.form.*;

import net.java_school.util.*;

public class ModifyFormAction extends Action {
   
   public ActionForward execute (
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

         GulForm gulForm = (GulForm) form;
         GulManager gulManager = new GulManager();
         Gul gul = gulManager.findGul( gulForm.getGulValue().getGulno() );
         gulForm.setGulValue( gul );

         return mapping.findForward("modify_form");
   }
}

struts-config.xml

<action
   path="/modify_form"
   type="com.dadam.action.ModifyFormAction"
   name="gulForm"
   scope="request"
   unknown="false"
   validate="false">
      <forward 
         name="modify_form" 
         path="/struts/modify_form.jsp"
         redirect="false"
      />
</action>

modify_form.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*" %>
<%@ page import="net.java_school.util.Log" %>
<%@ page import="com.dadam.board.*" %>
<%@ page import="com.dadam.form.*" %>
<%
   GulForm gulForm = (GulForm) request.getAttribute("gulForm");
   String board = gulForm.getGulValue().getBcode();
   int number = gulForm.getGulValue().getGulno();
   int curPage = gulForm.getCurPage();
   Gul gul = gulForm.getGulValue();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitonal.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Struts °Ô½ÃÆÇ : ¼öÁ¤È­¸é</title>
<script language="javascript">
   function checking() {
      var form = document.getElementById("frmModify");
      var subject = document.forms.frmModify.elements[3];
      var content = document.forms.frmModify.elements[4];

      if ( subject.value.length == 0) {
         alert("Á¦¸ñÀ» ÀÔ·ÂÇϼ¼¿ä");
         subject.focus();
         return;
      }
      if ( content.value == '') {
         alert("º»¹®À» ÀÔ·ÂÇϼ¼¿ä");
         content.focus();
         return;
      } else {
         if ( content.value.length > 6000 ) {
            alert("6000ÀÚ ÀÌ»óÀº ÀÔ·ÂÇÒ ¼ö ¾ø½À´Ï´Ù.!");
            return;
         }
      }

      form.submit();
   }

   function goView() {
      var form = document.getElementById("frmView");
      form.submit();
   }

</script>
</head>
<body>
   <form id="frmModify" name="frmModify" action="modify.do" method="post">
      <input type="hidden" name="gulValue.signdate" value="<%=gul.getSigndate() %>" />
      <input type="hidden" name="gulValue.gulno" value="<%=number %>" />
      <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
      Á¦¸ñ : <input type="text" name="gulValue.subject" value="<%=gul.getSubject() %>" />
	  <br />
      º»¹® : <br />
      <textarea name="gulValue.content" cols="30" rows="10">
        <%=gul.getContent() %>
      </textarea>
      <br />
      <input type="button" value="Àü¼Û" onclick="javascript:checking()" />
      <input type="button" value="»ó¼¼º¸±â" onclick="javascript:goView()" />
   </form>
<div id="form-grp">
   <form id="frmView" name="frmView" action="view.do" method="post">
      <input type="hidden" name="gulValue.gulno" value="<%=number %>" />
      <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
   </form>
</div>	
</body>
</html>

3. ¼öÁ¤Ã³¸®

¿äû¸í modify.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º ModifyAction

¼öÁ¤Ã³¸®¸¦ Å×½ºÆ®Çϸé ÇѱÛÀÌ ±úÁý´Ï´Ù.
¾Æ·¡ 8. ÇÊÅÍ »ç¿ë .. ¿¡ ÇØ°á¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

ModifyAction.java

package com.dadam.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dadam.board.Gul;
import com.dadam.board.GulManager;

import com.dadam.form.*;

public class ModifyAction extends Action {

   public ActionForward execute (

      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

      // Parameter
      GulForm gulForm = (GulForm) form;

      GulManager gulManager = new GulManager();

      Gul gul = gulForm.getGulValue();

      int success = gulManager.update( gul );

      if ( success > 0 ) {
         //return mapping.findForward("success");
         StringBuffer path = new StringBuffer();
         path.append("view.do?gulValue.gulno=");
         path.append(gul.getGulno());
         path.append("&gulValue.bcode=");
         path.append(gul.getBcode());
         path.append("&curPage=");
         path.append(gulForm.getCurpage());
         return new ActionForward ( path.toString(), true );
         // ¼öÁ¤ÈÄ Á¶È¸¼ö°¡ 0 ÀÌ µÇÁö ¾Êµµ·Ï Çϱâ À§Çؼ­´Â À§¿Í °°ÀÌ ±¸ÇöÇÒ ¼ö ¹Û¿¡ ¾ø´Ù.
      } else {
         return mapping.findForward("failure");
      }
   }
}

struts-config.xml

<action
      path="/modify"
      type="com.dadam.action.ModifyAction"
      name="gulForm"
      scope="request"
      unknown="false"
      validate="false">
         <forward 
            name="success" 
            path="/struts/view.jsp"
            redirect="false"
         />
         <forward 
            name="failure" 
            path="/struts/modify_form.jsp"
            redirect="false"
         />
</action>

4. »èÁ¦Ã³¸®

¿äû¸í delete.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º DeleteAction

»èÁ¦Ã³¸®ÇÑ ´ÙÀ½ ¸ñ·Ïº¸±â·Î À̵¿ÇØ¾ß ÇÕ´Ï´Ù.
Æ÷¿öµå ¹æ½ÄÀ¸·Î À̵¿ÇÏ·Á¸é ¸ñ·Ïº¸±â ¿äû¿¡ ÀÌ¿ëµÈ Æûºó°ú »èÁ¦Ã³¸®¿¡ ÀÌ¿ëµÇ´Â ÆûºóÀº ´Ù¸£±â ¶§¹®¿¡ °ï¶õÇÕ´Ï´Ù.
µû¶ó¼­ »èÁ¦Ã³¸®ÇÑ ´ÙÀ½ ¸ñ·Ïº¸±â·ÎÀÇ À̵¿Àº Æ÷¿öµå ¹æ½ÄÀÌ ¾Æ´Ñ ¸®´ÙÀÌ·ºÆ® ¹æ½ÄÀ¸·Î ±¸ÇöÇÏ·Á ÇÕ´Ï´Ù.
¸®´ÙÀÌ·ºÆ® ¹æ½ÄÀ̶ó°í Á¤ÇØÁ³´Âµ¥ ¶Ç Çϳª ¹®Á¦°¡ ÀÖ½À´Ï´Ù. list.do ¿äûÇÏ·Á¸é board, curPage ¶ó´Â ÆÄ¶ó¹ÌÅ͸¦ ÇÔ²² Àü´ÞÇØ¾ß ÇÕ´Ï´Ù.
µû¶ó¼­ struts-config.xml ¿¡ ¸®´ÙÀÌ·ºÆ® ¼³Á¤ÇÒ ¼ö ¾ø°í, ´ë½Å ¾Æ·¡¿Í °°ÀÌ model2 ¿¡¼­Ã³·³ ActionForward Á÷Á¢ »ý¼ºÇÏ¿© »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

DeleteAction.java

package com.dadam.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dadam.board.Gul;
import com.dadam.board.GulManager;

import com.dadam.form.*;

public class DeleteAction extends Action {
   public ActionForward execute (
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

      // Parameter
      GulForm gulForm = (GulForm) form;

      GulManager gulManager = new GulManager();
      int number = gulForm.getGulValue().getGulno();
      int curPage = gulForm.getCurPage();
      String board = gulForm.getGulValue().getBcode();

      gulManager.remove( number );

      String path = "list.do?board="+board+"&curPage="+curPage;
      return new ActionForward( path, true );
   }
}

struts-config.xml

<action
   path="/delete"
   type="com.dadam.action.DeleteAction"
   name="gulForm"
   scope="request"
   unknown="false"
   validate="false">
</action>

5. »õ±Û¾²±âÈ­¸é ¿äû

¿äû¸í write_form.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º ¾øÀ½

»õ±Û¾²±â È­¸éÀ» À§ÇØ Æ¯º°È÷ ¸ðµ¨ ÆÄÆ®¿¡ ½Ãų ÀÏÀÌ ¾ø¾î º¸ÀÔ´Ï´Ù.
´Ù½Ã ¸»ÇØ, ¾×¼Ç Ŭ·¡½º¸¦ ¸¸µé¾î¼­ ÄÚµå ³»¿¡ gulManager ¿¡°Ô ÀÏÀ» ½Ãų °ÍÀÌ ¾ø½À´Ï´Ù.
ÀÌ·²¶§´Â ¾×¼Ç Ŭ·¡½º¸¦ ¸¸µéÁö ¾Ê°í ¹Ù·Î ÇØ´ç ºä·Î À̵¿ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼³Á¤³»¿ë¿¡´Â, ºä¿¡ À̵¿ÇÏ´õ¶óµµ Æûºó(gulForm)ÀÌ ¾²À̹ǷΠStruts - First Steps ¶§¿Í´Â ´Þ¸® Æûºó ¼³Á¤ÀÌ Ãß°¡µÇ¾î ÀÖ½À´Ï´Ù.

struts-config.xml

<action
   path="/write_form"
   name="gulForm"
   scope="request"
   forward="/struts/write_form.jsp"
/>

write_form.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="com.dadam.form.*" %>  
<%
   GulForm gulForm = (GulForm) request.getAttribute("gulForm");
   String board = gulForm.getGulValue().getBcode();
   int curPage = gulForm.getCurPage();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitonal.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Struts °Ô½ÃÆÇ : »õ±Û¾²±â È­¸é</title>
<script language="javascript">

   function checking() {
      var form = document.getElementById("frmWrite");
      var subject = document.forms.frmWrite.elements[1];
      var content = document.forms.frmWrite.elements[2];
      if ( subject.value.length == 0) {
         alert("Á¦¸ñÀ» ÀÔ·ÂÇϼ¼¿ä");
         form.subject.focus();
         return;
      }
      if ( content.value == '') {
         alert("º»¹®À» ÀÔ·ÂÇϼ¼¿ä");
         content.focus();
         return;
      } else {
         if ( content.value.length > 6000 ) {
            alert("6000ÀÚ ÀÌ»óÀº ÀÔ·ÂÇÒ ¼ö ¾ø½À´Ï´Ù.!");
            return;
         }
      }

      form.submit();
   }

   function goList() {
      var form = document.getElementById("frmList");
      form.submit();
   }
	
</script>
</head>
<body>
   <form id="frmWrite" name="frmWrite" action="write.do" method="post">
      <input type="hidden" name="gulValue.bcode" value="<%=board %>" />
      Á¦¸ñ : <input type="text" name="gulValue.subject" />
	  <br />
      º»¹® : <br />
      <textarea name="gulValue.content" cols="30" rows="10"></textarea><br />
      <input type="button" value="Àü¼Û" onclick="javascript:checking()" />
      <input type="button" value="¸ñ·Ï" onclick="javascript:goList()" />
   </form>
   <form id="frmList" name="frmList" action="list.do" method="post">
      <input type="hidden" name="board" value="<%=board %>" />
      <input type="hidden" name="curPage" value="<%=curPage %>" />
   </form>
</body>
</html>

6. »õ±Û¾²±âó¸® ¿äû

¿äû¸í write.do
Æûºó GulForm
¾×¼Ç Ŭ·¡½º WriteAction

»õ±Û¾²±â 󸮸¦ ÇÑ ÈÄ ¸ñ·Ïº¸±â·Î À̵¿ÇØ¾ß ÇÕ´Ï´Ù.
°Ô½ÃÆÇÀÌ ¿©·¯°³¶ó¸é »õ±ÛÀ» ¾´ ÈÄ ÇØ´ç °Ô½ÃÆÇÀÇ Ã¹¹øÂ° ÆäÀÌÁö·Î À̵¿ÇØ¾ß ÇϹǷΠboard ÆÄ¶ó¹ÌÅ͸¦ list.do ¿äû°ú ÇÔ²² Àü´ÞÇØ¾ß ÇÕ´Ï´Ù.
µû¶ó¼­ ¾Æ·¡¿Í °°ÀÌ ActionForward¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀ» ÅÃÇß½À´Ï´Ù.

WriteAction.java

package com.dadam.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.dadam.board.Gul;
import com.dadam.board.GulManager;

import com.dadam.form.*;

public class WriteAction extends Action {

   public ActionForward execute (

      ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response) throws Exception {

      // Parameter
      GulForm gulForm = (GulForm) form;
      GulManager gulManager = new GulManager();
      Gul gul = gulForm.getGulValue();
      String board = gulForm.getGulValue().getBcode();
      int curPage = gulForm.getCurPage();
      gulManager.create(gul);

      String path = "list.do?board="+board;
      
      return new ActionForward( path, true );
      
   }
}

struts-config.xml

<action
   path="/write"
   type="com.dadam.action.WriteAction"
   name="gulForm"
   scope="request"
   unknown="false"
   validate="false">
      <forward 
         name="list" 
         path="/struts/list.jsp"
         redirect="false"
      />
</action>

8. ÇÊÅÍ »ç¿ë : »õ±Û¾²±â¿Í ¼öÁ¤Ã³¸® ¶§ ÇѱÛÀÌ ±úÁö´Â °ÍÀ» ¸·±â À§Çؼ­

Struts´Â request ¿¡ ÀÖ´Â ÆÄ¶ó¹ÌÅ͸¦ getParameter ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼­ ²¨³»¼­ ÇØ´ç ÆûºóÀ» ¼ÂÆÃÇÕ´Ï´Ù.
µû¶ó¼­ ¿ì¸®´Â model2 ¿¡¼­¿Í °°ÀÌ requestÀÇ setCharacterEncoding ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
¿Ö³ÄÇϸé setCharacterEncoding Àº getParameter ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü¿¡ ½ÇÇàµÇ¾î¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù. ¸¸¾à getParameter ¸Þ¼Òµå°¡ ÇѹøÀÌ¶óµµ ½ÇÇàÇÑ ÈĶó¸é setCharacterEncoding ¸Þ¼Òµå´Â ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌÁ¦ »ç¿ëÀÚ°¡ À¥ºê¶ó¿ìÀú¸¦ »ç¿ëÇØ¼­ º¸³»´Â ¸ðµç ¿äûÀ» ÇÏ¸é ¸ÕÀú
request.setCharacterEncodeing("EUC-KR"); Äڵ尡 ½ÇÇàµÇµµ·Ï ÇÏ°í ½Í½À´Ï´Ù.
ÀÌ·¸µí ¿äû¿¡ ¾Õ¼­ ½ÇÇàµÇ¾î¾ß ÇÏ´Â Äڵ尡 ÀÖÀ» ¶§ »ç¿ëÇÏ´Â °ÍÀÌ ÇÊÅͶó´Â ±â¼úÀÔ´Ï´Ù.
¾Õ¼­ ½ÇÇàµÇ¾î¾ß Çϱ⿡ ÇÊÅͶó´Â À̸§ÀÌ ºÙÀº °ÍÀÔ´Ï´Ù.
ÇÊÅÍ´Â Servlet 2.3 ½ºÆå¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù.

EncodingFilter.java

package com.dadam.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter {
   private String encoding = null;

   protected FilterConfig filterConfig = null;

   public void destroy() {

      this.encoding = null;
      this.filterConfig = null;

   }

   public void doFilter(
      ServletRequest request,
      ServletResponse response,
      FilterChain chain)
      throws IOException, ServletException {

      if (request.getCharacterEncoding() == null) {
         if (encoding != null) {
            request.setCharacterEncoding(encoding);
         }
      }

      chain.doFilter(request, response);
   }

   public void init(FilterConfig filterConfig) throws ServletException {
      this.filterConfig = filterConfig;
      this.encoding = filterConfig.getInitParameter("encoding");
   }

   public FilterConfig getFilterConfig() {
      return filterConfig;
   }

   public void setFilterConfig(FilterConfig cfg) {
      filterConfig = cfg;
   }
}

ÇÊÅÍ Å¬·¡½º¸¦ ¸¸µç ´ÙÀ½,
¾Æ·¡ Äڵ带 web.xml ÆÄÀÏ¿¡¼­ wep-app ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®·Î Ãß°¡ÇÕ´Ï´Ù.
ù¹øÂ° °­Á¶µÈ ºÎºÐÀº ÃʱⰪÀ¸·Î EUC-KR¸¦ »ç¿ëÇÑ °ÍÀÔ´Ï´Ù.
µÎ¹øÂ°´Â ¸ðµç ¿äû¿¡ ´ëÇØ ÀÌ ÇÊÅͰ¡ ÀÛµ¿Çϵµ·Ï ÇÑ °ÍÀÔ´Ï´Ù.
Struts ¿¡¼­¸¸ »ç¿ëÇÑ´Ù¸é *.do À̶ó°í Çϴ°ÍÀÌ ´õ ³´´Ù°í »ý°¢ÇÕ´Ï´Ù.

web.xml


.. Áß°£ »ý·« ..

<filter>
   <filter-name>Encoding Filter</filter-name>
   <filter-class>com.dadam.filter.EncodingFilter</filter-class>
   <init-param>
      <param-name>encoding</param-name>
      <param-value>EUC-KR</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>Encoding Filter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

.. Áß°£ »ý·« ..