2014년 9월 3일 수요일

[심심풀이]Easy Struts를 이용한 예제[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

Easy Struts를 이용한 예제 

1.Tomcat Project를 하나 만듭니다. 

- File  --> New를 선택 후 “Project”를 선택 합니다. 

-Java 옵션의 “Tomcat Project”를 선택 후 적절한 프로젝트 이름을 입력 합니다. 그런 다음 Next 하시구요… 
(우린 EasyStruts라고 하자구요~) 

-“Can update server.xml”을 check 확인 하시구요(이건 디폴트 입니다) 

-“Finish” 합니다. 

2.Easy Struts가 사용 가능하도록 합니다. 

- “New” (좌측 상단에 위치) 버튼을 클릭 합니다. 
-“Java” 옵션의 하위 옵션인 “Easy Struts”를 선택 합니다. 

  

오른쪽에 보이는 것은 Easy Struts가 제공하는 10가지의 Function 입니다. 

- Base package for generation : com.asprise.struts 
-“Add Easy Struts support" 를 선택 후 Next 합니다. 
-"Copy Struts binary" 와"Copy Struts TLD" 를 체크 합니다. 



3.“Easy Action Associated with a Form”을 이용하여 작업 하기 

좌 상단의 New 버튼을 누른 후 “Easy Struts Function View”를 띄웁니다. “Easy Action associated with a form" 을 선택하고 아래의 과정을 따라 합니다. 

Use case, Forn Name 과 FornType을 변경 합니다. (이건 화면을 띄우면 기본적으로 값이 채워져 있습니다.) 

Use case : owner 
Form name : ownerForm 
Form Type : com.asprise.form.OwnerForm 

그런 다음 Form properties에서 “Add”를 클릭 합니다. 
아래와 같이 속성을 줍니다. 

이름 :: 타입 :: 초기치 :: JSP input type 
---------------------------------------------- 
greet :: java.lang.String : Mr. : :: select 
name :: java.lang.String : : :: text 
email :: java.lang.String : : :: text 
tel :: java.lang.String:: :: text 
address :: java.lang.String : : :: text 

위와 같이 속성을 주게되면 struts에서는 자동으로 setter와 getter를 생성 하게 되는 겁니다. 

그런 다음 아래에서 처음 두 개의 체크 박스를 체크 하시구요 다음으로 넘어 갑니다. 

        
4. 위에서 Next를 하게 되면 화면이 하나 나타나는데 기본적으로 input value는 “/form/owner.jsp”로 되어 있을 겁니다. 
이 JSP 파일의 Location은 수작업 또는 Preference Setting을 통해 수정 하는 것이 가능 합니다. Preference Setting을 수정 
하기 위해서는 “Window” 메뉴의 “Preference”로 이동 후 “Easy Struts” 옵션을 선택 합니다. 그런 다음 “Style” 탭을 선택하고 
적절하게 “JSP form localtion”을 수정 합니다. 만약 공백으로 준다면 지금 나타나는 화면에서 /owner.jsp로 나타날 겁니다. 
아래에 각 항목에 대한 설명이 있습니다. 

Path. 서브밋 되는 Request의 Path이며 반드시 “/”로 시작 해야 합니다. 
Type. ActionMapping,에서 사용되는 Action Class의 이름 
Attribute. Request Scope나 Session Scope에서 폼빈에 대한 이름 
Scope: 폼빈이 이 매핑을 통해 존재하게 될 Scope 
input. : 에러 등이 나게 되면 Return하게 되는 context-relative path  
Validate : 이걸 체크하게 되면 ActionForm.validate() method 가 Call 됩니다. 
Parameter. Action에게 넘겨 줄 파라미터 등을 기술 

Path : /owner 
Type : com.asprise.struts.OwnerAction 
Attribute : ownerForm 
Scope : Request 
(Create JSP)Input : /owner.jsp 

  
4.위화면에서 Next를 누르게 되면 Forward와 Exception을 설정 하게 되는데 그 내용은 아래와 같습니다. 

Forward : Action이 포워드될 Servlet이나 JSP 자원에 대한 Context-relative 경로 
Exception : 이 mapping과 관련된 Exception Handler 

아래와 같이 Forward를 만듭니다. 

Forward name : success 
Forward path : /success.jsp 

  

화면에서  Finish를 클릭하면 Struts 시스템에서는 자동으로 com.asprise.struts.form.OwnerForm.java and com.asprise.struts.action.OwnerAction.java 파일을 만들게 됩니다. (EasyStruts/WEB-INF/src/ 아래에 만듭니다) 이와 동시에 /owner.jsp 파일도 자동으로 만들어 집니다.  개발자는 적절히 이러한 파일들을 수정을 하면됩니다. 폼빈에서는 validate 메소드 등을 적절히 완성하면 됩니다. 

5.이번에는 자동으로 만들어진 Action Class를 수정해 보도록 합니다. 

아래의 소스가 자동으로 만들어진 Action Class 입니다. 여기에서 Interger라고 한 부분을 int로 수정 하시구요…. 

여러분들은 validate() 메소드를 추가해 주시면 됩니다. Validate가 추가된 소스는 다음에 있으니 참고 바랍니다. 

Validate() 메소드가 추가된 OwnerForm.java 파일은 다음과 같습니다. 

================================================================== 

// Created by Xslt generator for Eclipse. 
// XSL :  not found (java.io.FileNotFoundException:  (No such file or directory)) 
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl 

package com.asprise.struts.form; 

import javax.servlet.http.HttpServletRequest; 

import org.apache.struts.action.ActionErrors; 
import org.apache.struts.action.ActionError; 
import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionMapping; 

/** 
 * OwnerForm.java created by EasyStruts - XsltGen. 
 * http://easystruts.sf.net 
 * created on 01-25-2005 
 * 
 * XDoclet definition: 
 * @struts:form name="ownerForm" 
 */ 
public class OwnerForm extends ActionForm { 

        // --------------------------------------------------------- Instance Variables 

        /** greet property */ 
        private String greet = "Mr."; 

        /** address property */ 
        private String address; 

        /** email property */ 
        private String email; 

        /** tel property */ 
        private String tel; 

        /** name property */ 
        private String name; 

        // --------------------------------------------------------- Methods 

        /** 
        * Method validate 
        * @param ActionMapping mapping 
        * @param HttpServletRequest request 
        * @return ActionErrors 
        */ 
        public ActionErrors validate( 
                ActionMapping mapping, 
                HttpServletRequest request) { 

                        ActionErrors errors = new ActionErrors(); 
                  if (greet == null || greet.trim().equals("")) { 
                        errors.add("greet", new ActionError("error.greet")); 
                  } 
                  if (name == null || name.trim().equals("")) { 
                        errors.add("name", new ActionError("error.name")); 
                  } 
                  if (address == null || address.trim().equals("")) { 
                        errors.add("address", new ActionError("error.address")); 
                  } 
                  if (email == null || email.trim().equals("")) { 
                        errors.add("email", new ActionError("error.noEmail")); 
                  } 
                  else if (email.indexOf("@")==-1) { 
                        errors.add("email", new ActionError("error.wrongEmail")); 
                  } 
                  if (tel == null || tel.trim().equals("")) { 
                        errors.add("tel", new ActionError("error.tel")); 
                  } 
                  return errors; 
    } 

        

        /** 
        * Method reset 
        * @param ActionMapping mapping 
        * @param HttpServletRequest request 
        */ 
        public void  reset(ActionMapping mapping, HttpServletRequest request) { 
                greet = "Mr."; 
                address = ""; 
                email = ""; 
                tel = ""; 
                name = ""; 

        } 

        /** 
        * Returns the greet. 
        * @return String 
        */ 
        public String getGreet() { 
                return greet; 
        } 

        /** 
        * Set the greet. 
        * @param greet The greet to set 
        */ 
        public void setGreet(String greet) { 
                this.greet = greet; 
        } 

        /** 
        * Returns the address. 
        * @return String 
        */ 
        public String getAddress() { 
                return address; 
        } 

        /** 
        * Set the address. 
        * @param address The address to set 
        */ 
        public void setAddress(String address) { 
                this.address = address; 
        } 

        /** 
        * Returns the email. 
        * @return String 
        */ 
        public String getEmail() { 
                return email; 
        } 

        /** 
        * Set the email. 
        * @param email The email to set 
        */ 
        public void setEmail(String email) { 
                this.email = email; 
        } 

        /** 
        * Returns the tel. 
        * @return String 
        */ 
        public String getTel() { 
                return tel; 
        } 

        /** 
        * Set the tel. 
        * @param tel The tel to set 
        */ 
        public void setTel(String tel) { 
                this.tel = tel; 
        } 

        /** 
        * Returns the name. 
        * @return String 
        */ 
        public String getName() { 
                return name; 
        } 

        /** 
        * Set the name. 
        * @param name The name to set 
        */ 
        public void setName(String name) { 
                this.name = name; 
        } 



================================================================================= 

6.이번에는 OwnerAction.java 에서 사용된 error key에 대한 부분을 ApplicationResources.properties 파일에 설정 합니다. 

# Resources for parameter 'com.asprise.struts.ApplicationResources' 
# Project P/EasyStruts 

errors.header=<h4>Validation Error(s)</h4><ul> 
errors.footer=</ul><hr> 

error.greet=<li>Choose your greet 
error.name=<li>Enter your name 
error.address=<li>Enter your address 
error.tel=<li>Enter your contact number 
error.wrongEmail=<li>Correct your email 
error.noEmail=<li>Enter your email 


7.이번에는 OwnerAction.java 파일을 변경 합니다. 

=========================================================================== 

// Created by Xslt generator for Eclipse. 
// XSL :  not found (java.io.FileNotFoundException:  (No such file or directory)) 
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl 

package com.asprise.struts.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.asprise.struts.form.OwnerForm; 

/** 
 * OwnerAction.java created by EasyStruts - XsltGen. 
 * http://easystruts.sf.net 
 * created on 01-25-2005 
 * 
 * XDoclet definition: 
 * @struts:action path="/owner" name="ownerForm" input="/owner.jsp" validate="true" 
 * @struts:action-forward name="/success.jsp" path="/success.jsp" 
 */ 
public class OwnerAction extends Action { 


        /** 
        * Method execute 
        * @param ActionMapping mapping 
        * @param ActionForm form 
        * @param HttpServletRequest request 
        * @param HttpServletResponse response 
        * @return ActionForward 
        * @throws Exception 
        */ 
        public ActionForward execute( 
                ActionMapping mapping, 
                ActionForm form, 
                HttpServletRequest request, 
                HttpServletResponse response) 
                throws Exception { 
                        OwnerForm ownerForm = (OwnerForm) form; 
      
                  String greet = ownerForm.getGreet(); 
                  String name = ownerForm.getName(); 
                  request.setAttribute("name", name); 
                  request.setAttribute("greet", greet); 

                  // Forward control to the specified success target 

                  return (mapping.findForward("success")); 

        } 



==================================================================== 

8.이번에는 owner.jsp를 수정 합니다. 

“greet”라는 속성을 만들 때 select 형태로 주었습니다, 이 부분에 적절한 옵션을 추가해 주시면 됩니다. 

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> 
<html> 
  <head> 
      <meta 
        name = "Generator" 
        content = "Easy Struts Xslt generator for Eclipse (http://easystruts.sf.net)."> 
      <title>Struts Form for ownerForm</title> 
  </head> 
  <body> 
      <html:form action="/owner"> 
        greet : <html:select property="greet"> 
                    <html:option value=""></html:option> 
                    <html:option value="Mr.">Mr.</html:option> 
                    <html:option value="Miss">Miss</html:option> 
                    <html:option value="Mrs.">Mrs.</html:option> 
                </html:select><html:errors property="greet"/> 
    name : <html:text property="name"/><html:errors property="name"/></br> 
    address : <html:text property="address"/><html:errors property="address"/></br> 
    email : <html:text property="email"/><html:errors property="email"/></br> 
    tel : <html:text property="tel"/><html:errors property="tel"/></br> 
        <html:submit/><html:cancel/> 
      </html:form> 
    <html:errors /> 
  <body> 
</html> 


9.이번에는 success.jsp를 만듭니다. (EasyStruts 프로젝트에서 New , File 한 후 추가 합니다) 

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 

<logic:present name="name" scope="request"> 
Thank you, 
  <logic:present name="greet" scope="request"> 
      <bean:write name="greet" scope="request"/> 
  </logic:present> 
  <bean:write name="name" scope="request"/> 
</logic:present> 


10.이번에는 struts-config.xml 파일을 열어 설정을 확인합니다. UI형태를 지원하므로 편리하게 struts-config.xml을 설정하는 것이 가능 합니다 

Struts-config.xml을 클릭하면 다음과 같은 UI를 가진 화면이 나타나는데 여기서 기존 방법보다 좀 더 편리하게 struts의 설정을 할 수가 있습니다. 

  

11.실행 결과 확인



 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271702
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111219
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-15981
52 [주말주간]C#, ASP.NET마스터 오라클자바…01-311134
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-31898
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-31827
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191117
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111003
47 [평일야간,주말주간]JAVA,Network&WEB&Framework 오라클자바…01-031491
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271702
45 [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… 오라클자바…12-191246
44 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) 오라클자바…12-141244
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111219
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-09980
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011152
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011379
39 [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌… 오라클자바…12-01869

댓글 없음:

댓글 쓰기