http://thinkingblog.tistory.com/4
에서 update와 delete를 추가하면서 설명. Struts1.war 파일에 추가 됨.



1. InfoFormBean.java 에서 ActionForm을 상속 받는다.

package com.myhome.info.beans;

import org.apache.struts.action.ActionForm;

@SuppressWarnings("serial")
public class InfoFormBean extends ActionForm{

 private int num;
 private String name;
 private String sex;
 private String tel;

...... 생략 ......

2. struts-config.xml에서 form-bean을 설정한다.

<!-- Form Bean Definitions -->
<!-- form으로 들어오는 데이터를 bean객체에 담는다 -->

    <form-beans> 
        <form-bean
            name="bean"  
            type="com.myhome.info.beans.InfoFormBean"/>  <!-- name은 아무거나 하고 type는 담을 object 객체를 써준다.(전달된 파라미터 데이터가 설정된 빈 으로 저장이 된다) -->
       
        <!--
         DynaActionForm은 예측할 수 없는 파라미터를 참조할때 사용한다.
        -->
        <form-bean
         name="dyna"
         type = "org.apache.struts.action.DynaActionForm">
         <!--
          form bean에 존재하지 않는 파라미터를 참조하기 위해 property를 설정한다.
          -->
          <form-property name="num" type="java.lang.Integer"/>
          <form-property name="name" type="java.lang.String"/>
          <form-property name="sex" type="java.lang.String"/>
          <form-property name="tel" type="java.lang.String"/>
          <form-property name="wdate" type="java.lang.String"/>
        </form-bean>
         
    </form-beans>

3. struts-config.xml 에서 <action-mapping> 설정한다.

 <!--
         [action Attributes]
         path = "request 경로"
         name = "폼정보를 받아 줄 빈 클래스 이름" - form-bean에 정의 된 이름
         scope = "request|session|application" - 다음의 영역으로 들어오는 정보
         input = "/info/modify.jsp" - 입력받은 폼 페이지 명 명시
                                             - 정의된 곳에서 들어오는 데이터를 사용하겠다.
         
         forward 부분에서 path만 잡아 주면 주소창은 변하지 않고 페이지만 변경 시킨다.
         그래서 redirect를 true를 설정하면 주소 까지 바뀌어 버린다.
         -->


        <!-- ActionForm을 상속한 bean을 사용할 경우 -->
        <action path = "/update"
          name = "bean"
          scope = "request"
          input = "/info/modify.jsp"
          type = "com.myhome.info.actions.InfoUpdateAction">
         <forward name="success" path="/list.do" redirect="true"/>
        </action>
        
        <!-- DynaActionForm 을 사용할 경우 -->
        <action path="/delete"
          name = "dyna"
          scope = "request"
          input= "/info.modify.jsp"
          type = "com.myhome.info.actions.InfoDeleteAction">
         <forward name = "success"
            path = "list.do"
            redirect="true" />
        </action>
  
  <!--
   path - 다음과 같은 url패턴으로 들어왔을때
   type - 다음에 실행 될  액션을 설정한다.
   forward - 다음페이지로 이동되어질 곳을 정한다.
   -->


4. Action Class 에서 설정.

//ActionForm을 상속한 경우
public class InfoUpdateAction extends Action{

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  
  /*form parameter를 InfoFormBean으로 받는다*/
  
  /**
   *  ActionForm의 역할
   *   Form parameter의 정보를 참조하기 위해
   *   ActionForm의 객체를 초기화 한다 - reset()
   * 
   *   form parameter의 정보를 받아 유효성 검사를 실시한다 - validate()
   * 
   *   참조한 폼 정보를 form-bean에 설정된 bean으로 전달한다.
   *
   * */

  
  InfoFormBean bean = (InfoFormBean)form;
  
  /*bean의 객체를 Entity(DTO)로 property를 복사한다.*/
  InfoDTO dto = new InfoDTO();
  BeanUtils.copyProperties(dto, bean);
  
  new InfoDAO().update(dto);
  
  return mapping.findForward("success");
 }
 
}

//DynaActionForm을 사용한 경우
public class InfoDeleteAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws Exception {
  
  DynaActionForm dyna = (DynaActionForm)form;
  InfoDTO dto = new InfoDTO();
  dto.setNum((Integer)dyna.get("num"));
  new InfoDAO().delete(dto);
  return mapping.findForward("success");
 }
 
}

5. InfoDAO.java, SqlMap.xml에 update, delete 추가.

6. jsp 페이지 수정.


자세한 내용은 war 파일을 참조 한다.

'FrameWork > Struts1' 카테고리의 다른 글

Struts1 FileDownload  (0) 2009.08.18
Struts1 fileUpload  (0) 2009.08.18
Struts1의 Action 4  (0) 2009.08.16
Struts1의 Action 3  (0) 2009.08.16
Struts1의 Action 2  (0) 2009.08.12
Struts1의 Action 1  (0) 2009.07.27
Struts1 에서 iBatis 사용하기  (0) 2009.07.05
Struts 1 을 사용하여 간단한 회원가입, 리스트 불러오기.  (0) 2009.07.05
Struts1 개발환경 설정.  (0) 2009.07.05
Struts(스트럿츠) 란?  (0) 2009.06.27
 SQL(Structured Query Language)은 관계형데이터베이스(RDB:Relational Database)의 관계형 데이터베이스 관리 시스템에서 자료의 검색과, 관리, 질의, 수정, 삭제 등의 작업을 하는 컴퓨터 언어이다. 대부분의 데이터베이스 관리 프로그램들이 SQL을 표준으로 채택하고 있기 때문에, 문법의 큰 차이는 없다.

■ SQL문의 종류

- 데이터 정의(DDL:Data Definition Language)
: 데이터 정의어. 데이터베이스의 논리적 구조를 정의하는 언어로, 객체 생성 및 변경시 사용하고, 데이터 딕셔너리(Data Diactionary)에 저장된다.

* 명령문
CREATE(데이터베이스 객체 생성)
ALTER(데이터베이스 객체 변경)
DROP(데이터베이스 객체 삭제)
RENAME(데이터베이스 객체이름 변경)
TRUNCATE(데이터베이스 객체의 저장 공간 삭제)


- 데이터 조작어(DML:Data Manipulation Language)
:  데이터 조작어로 데이터 변경시 사용하는 언어이다. 데이터 검색(Retrieval), 추가(Insert), 삭제(Delete), 갱신(Update) 작업을 한다.

* 명령문
INSERT(데이터 입력)
UPDATE(데이터 수정)
DELETE(데이터 삭제)

- 데이터 제어어(DCL:Data Control Language)
: 데이터 제어어로 데이터에 대한 접근 권한 부여등의 데이터베이스 시스템의 트랜잭션을 관리하기 위해 사용.

* 명령문
GRANT(데이터베이스에 대한 일련의 권한 부여)
REVOKE(이미 부여된 데이터베이스 객체의 권한을 취소)

- 기타

질의어(DQL:Data Query Language)
: SELECT(데이터 검색시 사용)

트랜잭션 처리어(TCL:Transaction Control Language)
: COMMIT(트랜잭션의 정상적인 종료처리), ROLLBACK(트랜잭션 취소), SAVEPOINT(트랜잭션내에 임시 저장점 설정) 


 eclipse에서 서버를 구동 시키며 resource is out of sync with the file system 이와 같은 오류가 발생할 때가 있다.

 eclipse가 다른 곳에서 복사한 폴더나 파일을 인식하지 못하고 발생하는 오류라고한다.

 이를 해결 하길 위해서 메뉴바에서 Project - Clean 을 클릭하여 문제가 있는 프로젝트를 Clean 시켜 주면 해결 된다.








 맥북에서 한영 전환하기가가 너무 불편해서 먼가 없나 찾던 중에 바람입력기가 있다는 것을 알게 되었습니다. 습관을 들이면 괜찮을것 같지만 한번 눌러서 전환하는게 작업을 할 때도 편한고 0.00001 초라도 아끼기 위해서 바람 입력기를 설치하였습니다.

다운로드는 여기서 하시면 됩니다.


설치를 하신 다음에 언어 설정하는 부분을 클릭하여 맨 아래 다국어 열기를 클릭합니다.


다국어 설정 창이 나오면 바람입력기를 선택하고 닫습니다.


그리고 다시 언어 설정을 클릭하여 바람입력기 중에 선택합니다.


오른쪽 command 키와, option 키를 각각 한영전환과 한자키로 사용하기 위해서는 환경설정에 들어가서 한영 전환 단축키를 설정해야 되는데 그 전에 시스템 환경설정의 손쉬운 사용에서 보조 장비에 대한 접근 활성화를 클릭해 주어야 합니다.

활성화를 하지 않았을 때, 한영 단축키에 Capslock와 사용자 정의 밖에 없습니다. 사용자 정의를 눌러서 command 키를 누르면 될줄 알았는데 안되더군요.-_-;


그래서 시스템 환경설정의 손쉬운 사용에 가셔서 보조 장비에 대한 접근 활성화를 클릭합니다.


그리고 나서 다시 환경 설정으로 가시면~


그림 처럼 다양한 선택이 나오는 것을 볼 수 있습니다.

그리고 다양한 기능들이 있는데 자세한 내용은 바람입력기 홈페이지를 참조 하시면 될 것 같습니다.

이런 좋은 프로그램을 만들어 주신 분께 감사드립니다.^^
맥북은 키스킨을 사용하기가 참 애매하죠.

자판 쪽으로 바람이 들어가니 발열 문제도 있고, 스피커 문제도 있죠.

그리고 저 같은 경우에는 손에 기름이 많아서 지금 맥북을 사용한지 몇달이 되지 않았는데

벌써 자판이 반들 반들 해지고 있네요.

그렇게 고민을 하던 중...

대형마트에서 cosy 에서 나온 만능키스킨을 보게 되었습니다.

처음에는 그냥 칼집만 내서 바람이 들어가게 사용할려고 했는데 

칼집을 내니까 이게 흐물 흐물 해서 자판에 맞춰서 제대로 덮을 수가 없더라고요.

그래서 이걸 다시 하나씩 짤라서 붙이게 되었습니다.

2주 정도 사용하고 있는데 나름 괜찮습니다.ㅎㅎ

혹시 저같이 손에 기름이 많고 키스킨을 꼭 쓰고 싶은 분들은 도전해 보세요.

4천원 밖에(?) 안합니다. 도전해 볼만 하지 않습니까?ㅎㅎ

혹시 더 좋은 방법을 발견 하신다면 알려주세요^^

단점 : 맥북 최대의 장점인 뽀대가 망가진다. 이건 정말 마음이 쓰리네요.


이건 그냥 심심해서... ㅎㅎ

'MacBook' 카테고리의 다른 글

Mac OS X 에서 Print Screen 하는 방법 3가지  (0) 2009.12.09
MacBook에 바람입력기 설치하기.  (1) 2009.07.12

+ Recent posts