즐겨찾기   
 
   
 
 
 

  모듈 사용 방법
    * Bright Spring Version 

  모듈 환경 세팅
    * 모듈 배치
     - bright-config.xml
     - struts-config.xml
     - web.xml
     - Tomcat 설정
    * Eclipse 설정

  개발 지원
    * Q&A
 
 
 

 



Bright > 모듈사용방법  > Struts Framework > Programming 방법  
 
 Bright Struts Framework -Programming 방법 
  
  1.기본 환경 세팅 
    1.1.업무 처리 프로세스 단 환경 정보 세팅
    1.2.Html Design Frame Control 골격 단 구성
  2.VO 프로그래밍
     2.1.VO Class 생성
  3.DAO 프로그래밍
     3.1.전역 Instance 생성 
     3.2.리스트
     3.3.페이징 리스트
     3.4.보기
     3.5.수정 폼
     3.6.입력 처리
     3.7.수정 처리
     3.8.삭제 처리
     3.9.파일명 가져오기
     3.10.이미지 파일명 가져오기 
  4.기본 프로그래밍
     4.1.리스트
     4.2.페이징 리스트
     4.3.검색
     4.4.보기
     4.5.입력/수정 폼
     4.6.입력 처리
     4.7.수정 처리
     4.8.삭제 처리
  5.파일 관련 처리
     5.1.파일 업로드시 파라미터 처리
     5.2.파일 업로드
     5.3.파일 다운로드
     5.4.이미지 업로드
     5.5.이미지 보여주기
     5.6.입력 처리시 파일 처리
     5.7.수정 처리시 파일 처리
     5.8.삭제 처리시 파일 처리
 
 1.1.업무 처리 프로세스 단 환경 정보 세팅
업무 처리 프로세스 단인 Action Class 최상단에 환경 정보(저장 서브 폴더명,추가 파라미터등)를  아래 처럼 정의한다.
 
 
/**
 * <p>기본 리스트 cmd</p>
 */
 String MBoard_ListCmd="listPage";
 
 /**
  * <p>페이지 마다 따라 다닐 추가 파라미터 들..</p>
  */ 
  String MBoard_CmdAddURL="";
 
 /**
  * <p>저장 서브 폴더명</p>
  */
  String FileSaveSubFolder="/Simple";

 
 /**
  * <p>리스트 URL</p>
  */
  String MBoard_ListURL="";
 
 /**
  * <p>Action 로드시  기본으로  execute 함수 실행됨.</p>  
  */ 
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    HttpServletResponse response) throws Exception {
   // Default  Environment Setting- Start ============================================
  
    MBoard_CmdAddURL=Bright.CmdAddURL(request,"page,page_per,sort_id,sort_by,search_type,search_text");//페이지 마다 따라 다닐 추가 파라미터 들..
    request.setAttribute("MBoard_ListCmd",MBoard_ListCmd);//기본 리스트 cmd
    request.setAttribute("MBoard_CmdAddURL",MBoard_CmdAddURL);//페이지 마다 따라 다닐 추가 파라미터 들..
  
    String page_cmd=Bright.reg_value(request,"cmd",MBoard_ListCmd,"1");//listPage,listView,input
  
    MBoard_ListURL="url=?cmd="+MBoard_ListCmd+MBoard_CmdAddURL;//게시판 기본 리스트 URL
    request.setAttribute("MBoard_ListURL",MBoard_ListURL);//게시판 기본 리스트 URL
  
    request.setAttribute("FileSaveSubFolder",FileSaveSubFolder);//저장 서브 폴더명
    request.setAttribute("page_cmd",page_cmd);
  
 // Default  Environment Setting- End ============================================ 
  
    return super.execute(mapping, form, request, response);
  }
 
 
 
여기서 FileSaveSubFolder는 /WebRoot/web_down/밑에 하부적으로 해당 프로그램에서 사용하는 파일,이미지를 관리하고자하는 디렉토리명이다.
 
 1.2.Html Design Frame Control 골격 단 구성
JSP Framework 방식과 동일함.
 
 2.1.VO Class 생성 
해당 업무의 DB 처리 시 데이타를 저장하는 VO Class에 해당 테이블 구성 또는 필요 데이타 구성을  아래 처럼 정의한다.
 
public class SimpleVO {
 
 /**
    <p>번호</p>
  */
  public String TEST_NUM; 
 
 /**
    <p>제목</p>
  */
  public String TEST_TITLE; 
 /**
    <p>이름</p>
  */
  public String TEST_NAME; 
   
 /**
    <p>파일 명</p>
  */
  public String TEST_FILENAME; 
 
 /**
    <p>파일 사이즈</p>
  */
  public String TEST_FILESIZE; 
 
 /**
    <p>파일 원본 명</p>
  */
  public String TEST_ORG_FILENAME;  
 
 /**
    <p>파일 이미지 명</p>
  */
  public String TEST_IMGNAME;  
 
 /**
    <p>파일 이미지 사이즈</p>
  */
  public String TEST_IMGSIZE;  
 /**
    <p>파일 이미지 원본 명</p>
  */
  public String TEST_ORG_IMGNAME;  
 
 /**
    <p>내용</p>
  */
  public String TEST_CON; 
 
 /**
    <p>날짜</p>
  */
  public String TEST_MKDATE;
 /**
  * @return TEST_CON
  */
 public String getTEST_CON() {
  return TEST_CON;
 }
 /**
  * @param test_con 설정하려는 TEST_CON
  */
 public void setTEST_CON(String test_con) {
  TEST_CON = test_con;
 }
 /**
  * @return TEST_FILENAME
  */
 public String getTEST_FILENAME() {
  return TEST_FILENAME;
 }
 /**
  * @param test_filename 설정하려는 TEST_FILENAME
  */
 public void setTEST_FILENAME(String test_filename) {
  TEST_FILENAME = test_filename;
 }
 /**
  * @return TEST_FILESIZE
  */
 public String getTEST_FILESIZE() {
  return TEST_FILESIZE;
 }
 /**
  * @param test_filesize 설정하려는 TEST_FILESIZE
  */
 public void setTEST_FILESIZE(String test_filesize) {
  TEST_FILESIZE = test_filesize;
 }
 /**
  * @return TEST_IMGNAME
  */
 public String getTEST_IMGNAME() {
  return TEST_IMGNAME;
 }
 /**
  * @param test_imgname 설정하려는 TEST_IMGNAME
  */
 public void setTEST_IMGNAME(String test_imgname) {
  TEST_IMGNAME = test_imgname;
 }
 /**
  * @return TEST_IMGSIZE
  */
 public String getTEST_IMGSIZE() {
  return TEST_IMGSIZE;
 }
 /**
  * @param test_imgsize 설정하려는 TEST_IMGSIZE
  */
 public void setTEST_IMGSIZE(String test_imgsize) {
  TEST_IMGSIZE = test_imgsize;
 }
 /**
  * @return TEST_MKDATE
  */
 public String getTEST_MKDATE() {
  return TEST_MKDATE;
 }
 /**
  * @param test_mkdate 설정하려는 TEST_MKDATE
  */
 public void setTEST_MKDATE(String test_mkdate) {
  TEST_MKDATE = test_mkdate;
 }
 /**
  * @return TEST_NAME
  */
 public String getTEST_NAME() {
  return TEST_NAME;
 }
 /**
  * @param test_name 설정하려는 TEST_NAME
  */
 public void setTEST_NAME(String test_name) {
  TEST_NAME = test_name;
 }
 /**
  * @return TEST_NUM
  */
 public String getTEST_NUM() {
  return TEST_NUM;
 }
 /**
  * @param test_num 설정하려는 TEST_NUM
  */
 public void setTEST_NUM(String test_num) {
  TEST_NUM = test_num;
 }
 /**
  * @return TEST_ORG_FILENAME
  */
 public String getTEST_ORG_FILENAME() {
  return TEST_ORG_FILENAME;
 }
 /**
  * @param test_org_filename 설정하려는 TEST_ORG_FILENAME
  */
 public void setTEST_ORG_FILENAME(String test_org_filename) {
  TEST_ORG_FILENAME = test_org_filename;
 }
 /**
  * @return TEST_ORG_IMGNAME
  */
 public String getTEST_ORG_IMGNAME() {
  return TEST_ORG_IMGNAME;
 }
 /**
  * @param test_org_imgname 설정하려는 TEST_ORG_IMGNAME
  */
 public void setTEST_ORG_IMGNAME(String test_org_imgname) {
  TEST_ORG_IMGNAME = test_org_imgname;
 }
 /**
  * @return TEST_TITLE
  */
 public String getTEST_TITLE() {
  return TEST_TITLE;
 }
 /**
  * @param test_title 설정하려는 TEST_TITLE
  */
 public void setTEST_TITLE(String test_title) {
  TEST_TITLE = test_title;
 }  
 
}
 
 
 3.1.전역 Instance 생성  
 
 1.Database 처리 프로세스 단인 DAO Class에서  Class Instance를 생성 후 전역 메모리에 할당 하는 기능 처리를 아래 처럼 정의한다.
 
 
private static SimpleDAO Instance; 
 
/**
  * <p>Instance를 반환</p>
  * @param
  * @return 
  * @exception
  */
 public static SimpleDAO getInstance() {
  if(Instance == null) {
   Instance = new SimpleDAO();
   System.out.println("Public Static SimpleDAO...Initialized");
  }
  return Instance;
 }
 
  전역 메모리에 한번 할당 한 Class Object를 재사용한다.
 
 3.2.리스트  
 1.Database 처리 프로세스 단인 DAO Class에서 리스트 기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>리스트</p>
  * @param MBoardListPage 페이징 리스트 정보 VO
  * @param SimpleVO 정보 VO
  * @return  MBoardListPage
 */
 public MBoardListPage List(MBoardListPage ListPage,SimpleVO BeenVO){
 
 // Query - Start ============================================ 
  
  Bright f_Bright=Bright.getInstance();
  String[]  ParamArr =new String[]{} ;  
  
  ListPage.setFieldSql("TEST_NUM,TEST_TITLE,TEST_NAME,TEST_CON,TEST_MKDATE");//Select할 필드리스트 Sql
  ListPage.setTableSql(" TEST_TBL where TEST_NUM is not null  ");//Select할 Table Sql
  ListPage.setParam(ParamArr);//Query 파라미터
 
 // Query - End ============================================
  return f_Bright.exeList(ListPage);//listPage 실행
 }
 
  
 3.3.페이징 리스트 
 1.Database 처리 프로세스 단인 DAO Class에서 리스트페이징 기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>페이징 리스트</p>
  * @param MBoardListPage 페이징 리스트 정보 VO
  * @param SimpleVO 정보 VO
  * @return  MBoardListPage
 */
 public MBoardListPage ListPage(MBoardListPage ListPage,SimpleVO BeenVO){
 
 // Query - Start ============================================ 
  
  Bright f_Bright=Bright.getInstance();
  String[]  ParamArr =new String[]{} ;  
  
  ListPage.setFieldSql("TEST_NUM,TEST_TITLE,TEST_NAME,TEST_CON,TEST_MKDATE");//Select할 필드리스트 Sql
  ListPage.setTableSql(" TEST_TBL where TEST_NUM is not null  ");//Select할 Table Sql
  ListPage.setParam(ParamArr);//Query 파라미터
 
 // Query - End ============================================
  return f_Bright.exeListPage(ListPage);//listPage 실행
 }
 
 
 3.4.보기
 1.Database 처리 프로세스 단인 DAO Class에서 보기 기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>보기화면</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 
 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));
  
  request.setAttribute("MBoard_ViewData",f_SimpleDAO.View(BeenVO));
  
 // DAO - End ============================================ 
  return mapping.findForward(page_htmlControl); //Page Forward.
 } 
 
  
 4.5.수정 폼
 1.Database 처리 프로세스 단인 DAO Class에서 수정 폼기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>수정화면</p> 
  * @param SimpleVO 정보 VO
  * @return  ArrayList<HashMap<String, String>> 결과
 */
 public ArrayList<HashMap<String, String>> Edit(SimpleVO BeenVO){
 
 // Query - Start ============================================
 
  Bright f_Bright=Bright.getInstance();
  String[]  ParamArr =new String[]{} ;
  String BoardEdit_Sql="select TEST_NUM, TEST_TITLE, TEST_NAME,TEST_FILENAME,";
  BoardEdit_Sql+=" TEST_FILESIZE,TEST_ORG_FILENAME,TEST_IMGNAME,TEST_IMGSIZE,TEST_ORG_IMGNAME,TEST_CON, TEST_MKDATE from ";
  BoardEdit_Sql+="  TEST_TBL where TEST_NUM is not null and TEST_NUM=?";
 
 //Query - End ============================================
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NUM(),ParamArr);//번호
  return f_Bright.Select(BoardEdit_Sql,ParamArr);
 }  
 
 
   
 3.6.입력 처리
 1.Database 처리 프로세스 단인 DAO Class에서 입력 처리 기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>입력처리</p> 
  * @param SimpleVO 정보 VO
  * @return  int 결과
 */
 public int Add_Ok(SimpleVO BeenVO){
 
 // Query - Start ============================================
  Bright f_Bright=Bright.getInstance();  
  String[]  ParamArr =new String[]{} ;

  String BoardInsert_Sql=" INSERT INTO TEST_TBL (TEST_NUM, TEST_TITLE, TEST_NAME,";
  BoardInsert_Sql+="TEST_FILENAME,TEST_FILESIZE,TEST_ORG_FILENAME,TEST_IMGNAME,TEST_IMGSIZE,TEST_ORG_IMGNAME,TEST_CON, TEST_MKDATE ) VALUES ";
  BoardInsert_Sql+=" ( (select nvl(max(TEST_NUM),0)+1 as maxNum from TEST_TBL),?,?,?,?,?,?,?,?,?,?)";
 // Query - End ============================================
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_TITLE(),ParamArr);//제목
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NAME(),ParamArr);//이름
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_FILENAME(),ParamArr);//파일명
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_FILESIZE(),ParamArr);//파일사이즈
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_ORG_FILENAME(),ParamArr);//파일 원본명
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_IMGNAME(),ParamArr);//이미지명
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_IMGSIZE(),ParamArr);//이미지사이즈
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_ORG_IMGNAME(),ParamArr);//이미즈 원본명
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_CON(),ParamArr);//내용  
  
  ParamArr=f_Bright.DateArrAdd(ParamArr);//날짜  
  
  return f_Bright.Insert(BoardInsert_Sql,ParamArr);
 } 
 
   
 3.7.수정 처리 
 1.Database 처리 프로세스 단인 DAO Class에서 수정 처리 기능 처리를 아래 처럼 정의한다.
 
 

 /**
  * <p>수정처리</p> 
  * @param SimpleVO 정보 VO
  * @return  int 결과
 */
 public int Edit_Ok(SimpleVO BeenVO){
 
 // Query - Start ============================================
  
  Bright f_Bright=Bright.getInstance();  
  String[]  ParamArr =new String[]{} ;
 
  String BoardUpdate_Sql=" update   TEST_TBL set ";
  BoardUpdate_Sql+=" TEST_TITLE=?";
  BoardUpdate_Sql+=", TEST_NAME=?";
  if (!Bright.bin_value(BeenVO.getTEST_FILENAME(),"").equals("")){//파일이 있으면
   BoardUpdate_Sql+=",TEST_FILENAME=?";
   BoardUpdate_Sql+=",TEST_FILESIZE=?";
   BoardUpdate_Sql+=",TEST_ORG_FILENAME=?";
  }//파일이 있으면
  if (!Bright.bin_value(BeenVO.getTEST_IMGNAME(),"").equals("")){//이미지가  있으면
   BoardUpdate_Sql+=",TEST_IMGNAME=?";
   BoardUpdate_Sql+=",TEST_IMGSIZE=?";
   BoardUpdate_Sql+=",TEST_ORG_IMGNAME=?";
  }//이미지가  있으면
  BoardUpdate_Sql+=",TEST_CON=?";
  BoardUpdate_Sql+=" where TEST_NUM=?";
  
 // Query - End ============================================
   
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_TITLE(),ParamArr);//제목
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NAME(),ParamArr);//이름
  
  if (BeenVO.getTEST_FILENAME()!=null){//파일이 있으면
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_FILENAME(),ParamArr);//파일명
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_FILESIZE(),ParamArr);//파일사이즈
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_ORG_FILENAME(),ParamArr);//파일 원본명
  }//파일이 있으면   
  
  if (BeenVO.getTEST_IMGNAME()!=null){//이미지가  있으면
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_IMGNAME(),ParamArr);//이미지명
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_IMGSIZE(),ParamArr);//이미지사이즈
   ParamArr=f_Bright.arrAdd(BeenVO.getTEST_ORG_IMGNAME(),ParamArr);//이미즈 원본
  }//이미지가  있으면
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_CON(),ParamArr);//내용    
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NUM(),ParamArr);//번호
 
  return f_Bright.Update(BoardUpdate_Sql,ParamArr);
 } 
 
 
 
  3.8.삭제 처리
 1.Database 처리 프로세스 단인 DAO Class에서 삭제 기능 처리를 아래 처럼 정의한다.
 
 

 /**
  * <p>삭제처리</p> 
  * @param SimpleVO 정보 VO
  * @return  int 결과
 */
 public int Del_Ok(SimpleVO BeenVO){
 
 // Query - Start ============================================
  
  Bright f_Bright=Bright.getInstance();  
  String[]  ParamArr =new String[]{} ;
 
  String BoardList_Del_Sql=" DELETE FROM  TEST_TBL  WHERE TEST_NUM=?"; 
  
 // Query - End ============================================ 
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NUM(),ParamArr);//번호
  return f_Bright.Delete(BoardList_Del_Sql,ParamArr);
 } 
 
  3.9.파일명 가져오기
 1.Database 처리 프로세스 단인 DAO Class에서 파일명 가져오기 기능 처리를 아래 처럼 정의한다.
 
  
 /**
  * <p>파일명을 가져온다.</p> 
  * @param SimpleVO 정보 VO
  * @return  String 결과
 */
 public String getFileName(SimpleVO BeenVO){
 
  // Query - Start ============================================
  Bright f_Bright=Bright.getInstance();
  String[]  ParamArr =new String[]{} ;
  String BoardFile_Sql="select TEST_FILENAME  from ";
  BoardFile_Sql+="  TEST_TBL where TEST_NUM is not null and TEST_NUM=?";
  //Query - End ============================================
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NUM(),ParamArr);//번호
  return f_Bright.getValue(BoardFile_Sql,ParamArr,"");
 } 
 

 
3.10.이미지 파일명 가져오기
 1.Database 처리 프로세스 단인 DAO Class에서 이미지 파일명 가져오기 기능 처리를 아래 처럼 정의한다.
 

 /**
  * <p>이미지 파일명을 가져온다.</p> 
  * @param SimpleVO 정보 VO
  * @return  String 결과
 */
 public String getImgFileName(SimpleVO BeenVO){
 
  // Query - Start ============================================
  Bright f_Bright=Bright.getInstance();
  String[]  ParamArr =new String[]{} ;
  String BoardFile_Sql="select TEST_IMGNAME  from ";
  BoardFile_Sql+="  TEST_TBL where TEST_NUM is not null and TEST_NUM=?";
  //Query - End ============================================
  ParamArr=f_Bright.arrAdd(BeenVO.getTEST_NUM(),ParamArr);//번호
  return f_Bright.getValue(BoardFile_Sql,ParamArr,"");
 } 
 
      
 4.1.리스트  
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 리스트 기능 처리를 아래 처럼 정의한다.
 
/**
  * <p> 리스트</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 
  String BoardList_SearchText="제목,이름";//게시판 검색 타입-셀렉트 박스 표시 텍스트
  String BoardList_SearchVal="TEST_TITLE,TEST_NAME";//게시판 검색 타입-셀렉트 박스 값 
 
 // MBoardListPage Infomation 지정 - Start ============================================
  
  MBoardListPage ListPage=new MBoardListPage();
  
  ListPage.setSearchSQL(request,"search_type","search_text",BoardList_SearchVal);//검색 타입,검색값,검색타입 배열 지정
  ListPage.setOrderBySQL(request,"TEST_NUM","desc");//정렬 순서 지정
 //  MBoardListPage Infomation 지정 - End ============================================
  ListPage.setPagePerRows(request);//페이징 보여줄 갯수 지정
  ListPage.setPageNum(request);//페이지 번호 지정
  
 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO(); 
  ListPage=f_SimpleDAO.List(ListPage, BeenVO);//list 실행
  
 // DAO - End ============================================ 
 // 게시판 리스트 데이타  
  request.setAttribute("MBoard_ListTotalCnt",ListPage.getTotalCnt());//총계 
  request.setAttribute("MBoard_ListData",ListPage.getListData());//데이타 
  request.setAttribute("MBoard_PagePerRows",ListPage.getPagePerRows());//한페이지 보여줄 갯수
  request.setAttribute("MBoard_ListNum",ListPage.getListNum());// 리스트 번호

  request.setAttribute("MBoard_OrderField",Bright.reg_value(request,"sort_id","","1"));//OrderField 필드 명
  request.setAttribute("MBoard_OrderBy",Bright.reg_value(request,"sort_by","","1"));//OrderBy 명   
  request.setAttribute("MBoard_SearchText",BoardList_SearchText);//게시판 검색 타입-셀렉트 박스 표시 텍스트
  request.setAttribute("MBoard_SearchValue",BoardList_SearchVal);//게시판 검색 타입-셀렉트 박스 값 
  
   return mapping.findForward(page_htmlControl); //Page Forward.
 } 
 
2.기능 Design 단 구성 - page_list.jsp로 파일을 만들고 아래 처럼 정의한다.
 
 JSP Framework 방식과 동일함.
 
3.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=list 접근시 결과 화면이 아래처럼 구성된다.
 
 
 
 
 4.2.페이징
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 리스트 페이징 기능 처리를 아래 처럼 정의한다.
 
 /**
  * <p>페이징 리스트</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward listPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
  
  String BoardList_SearchText="제목,이름";//게시판 검색 타입-셀렉트 박스 표시 텍스트
  String BoardList_SearchVal="TEST_TITLE,TEST_NAME";//게시판 검색 타입-셀렉트 박스 값 
 
 // MBoardListPage Infomation 지정 - Start ============================================
  
  MBoardListPage ListPage=new MBoardListPage();
  
  ListPage.setSearchSQL(request,"search_type","search_text",BoardList_SearchVal);//검색 타입,검색값,검색타입 배열 지정
  ListPage.setOrderBySQL(request,"TEST_NUM","desc");//정렬 순서 지정
 //  MBoardListPage Infomation 지정 - End ============================================
  ListPage.setPagePerRows(request);//페이징 보여줄 갯수 지정
  ListPage.setPageNum(request);//페이지 번호 지정
 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  ListPage=f_SimpleDAO.ListPage(ListPage, BeenVO);//listPage 실행
  
 // DAO - End ============================================ 
 // 게시판 리스트 데이타  
  request.setAttribute("MBoard_ListTotalCnt",ListPage.getTotalCnt());//총계 
  request.setAttribute("MBoard_ListData",ListPage.getListData());//데이타
  request.setAttribute("MBoard_PageTotalCnt",ListPage.getPageTotalCnt());//페이지 수 총계
  request.setAttribute("MBoard_PagePerRows",ListPage.getPagePerRows());//한페이지 보여줄 갯수
  request.setAttribute("MBoard_PageNum",ListPage.getPageNum());//페이지 번호
  request.setAttribute("MBoard_PageStartRowNum",ListPage.getPageStartRowNum());//시작 번호
  request.setAttribute("MBoard_PageEndRowNum",ListPage.getPageEndRowNum());//마지막 번호
  request.setAttribute("MBoard_ListNum",ListPage.getListNum());// 리스트 번호

  request.setAttribute("MBoard_OrderField",Bright.reg_value(request,"sort_id","","1"));//OrderField 필드 명
  request.setAttribute("MBoard_OrderBy",Bright.reg_value(request,"sort_by","","1"));//OrderBy 명   
  request.setAttribute("MBoard_SearchText",BoardList_SearchText);//게시판 검색 타입-셀렉트 박스 표시 텍스트
  request.setAttribute("MBoard_SearchValue",BoardList_SearchVal);//게시판 검색 타입-셀렉트 박스 값 

   return mapping.findForward(page_htmlControl); //Page Forward.
 }
 
2.기능 Design 단 구성 - page_listPage.jsp로 파일을 만들고 아래 처럼 정의한다.
 
 JSP Framework 방식과 동일함.
 
3.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=listPage 접근시 결과 화면이 아래처럼 구성된다.
 
 
 
 
 4.3.검색 
 1.업무 처리 프로세스 단인 Action Class에서 리스트 페이징,리스트 기능 처리를 하는 부분에서 아래 빨간 색 칠한 부분  처럼 정의한다.
 
 
/**
  * <p>페이징 리스트</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward listPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
  
  String BoardList_SearchText="제목,이름";//게시판 검색 타입-셀렉트 박스 표시 텍스트
  String BoardList_SearchVal="TEST_TITLE,TEST_NAME";//게시판 검색 타입-셀렉트 박스 값 
 
 // MBoardListPage Infomation 지정 - Start ============================================
  
  MBoardListPage ListPage=new MBoardListPage();
  
  ListPage.setSearchSQL(request,"search_type","search_text",BoardList_SearchVal);//검색 타입,검색값,검색타입 배열 지정
  
ListPage.setOrderBySQL(request,"TEST_NUM","desc");//정렬 순서 지정
 //  MBoardListPage Infomation 지정 - End ============================================
  ListPage.setPagePerRows(request);//페이징 보여줄 갯수 지정
  ListPage.setPageNum(request);//페이지 번호 지정
 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  ListPage=f_SimpleDAO.ListPage(ListPage, BeenVO);//listPage 실행
  
 // DAO - End ============================================ 
 // 게시판 리스트 데이타  
  request.setAttribute("MBoard_ListTotalCnt",ListPage.getTotalCnt());//총계 
  request.setAttribute("MBoard_ListData",ListPage.getListData());//데이타
  request.setAttribute("MBoard_PageTotalCnt",ListPage.getPageTotalCnt());//페이지 수 총계
  request.setAttribute("MBoard_PagePerRows",ListPage.getPagePerRows());//한페이지 보여줄 갯수
  request.setAttribute("MBoard_PageNum",ListPage.getPageNum());//페이지 번호
  request.setAttribute("MBoard_PageStartRowNum",ListPage.getPageStartRowNum());//시작 번호
  request.setAttribute("MBoard_PageEndRowNum",ListPage.getPageEndRowNum());//마지막 번호
  request.setAttribute("MBoard_ListNum",ListPage.getListNum());// 리스트 번호

  request.setAttribute("MBoard_OrderField",Bright.reg_value(request,"sort_id","","1"));//OrderField 필드 명
  request.setAttribute("MBoard_OrderBy",Bright.reg_value(request,"sort_by","","1"));//OrderBy 명   
  request.setAttribute("MBoard_SearchText",BoardList_SearchText);//게시판 검색 타입-셀렉트 박스 표시 텍스트
  request.setAttribute("MBoard_SearchValue",BoardList_SearchVal);//게시판 검색 타입-셀렉트 박스 값 

   return mapping.findForward(page_htmlControl); //Page Forward.
 } 
 
 
2.기능 Design 단 구성 - page_listPage.jsp,page_list 파일에 아래의 빨간색처럼 처럼 정의한다.
 
 JSP Framework 방식과 동일함.
 
  위와 같이 구성시 검색 폼(셀렉트 박스,검색어 박스)과 검색처리를 할수 있다.
  
 4.4.보기
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 보기 기능 처리를 아래 처럼 정의한다.
 
/**
  * <p>보기화면</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 
 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));
  
  request.setAttribute("MBoard_ViewData",f_SimpleDAO.View(BeenVO));
  
 // DAO - End ============================================ 
  return mapping.findForward(page_htmlControl); //Page Forward.
 } 
 
2.기능 Design 단 구성 - page_view.jsp로 파일을 만들고 아래 처럼 정의한다.
 
 JSP Framework 방식과 동일함.
 
3.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=view&test_num=데이터번호 접근시 결과 화면이 아래처럼 구성된다.
 
 
 
  
 4.5.입력/수정 폼
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 입력/수정 폼 기능 처리를 아래 처럼 정의한다.
 
 
/**
  * <p>입력화면</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
  return mapping.findForward(page_htmlControl); //Page Forward.
 }
 
 /**
  * <p>수정화면</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 // DAO - Start ============================================
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));
  
  request.setAttribute("MBoard_EditData",f_SimpleDAO.Edit(BeenVO));
 // DAO - End ============================================ 
  return mapping.findForward(page_htmlControl); //Page Forward.
 } 
 
 
2.기능 Design 단 구성 - page_add.jsp,page_edit로 파일을 만들고 page_inputForm.jsp를 include해서 cmd(기능 호출 파라미터)값에 따라 html 디자인에 데이터 값  할당 및 동작을 아래 처럼 정의한다.
 
 JSP Framework 방식과 동일함.
 
3.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=add 또는 http://도메인/Service/기능논리명(테이블명).do?cmd=edit&test_num=데이터번호 접근시 결과 화면이 아래처럼 구성된다.
 
 
 
   
 4.6.입력 처리
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 데이터 입력 기능 처리를 아래 처럼 정의한다.
 
 
 /**
  * <p>입력처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward add_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 

 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_TITLE(SiteUtil.reg_value(request, "test_title","", "1"));//제목
  BeenVO.setTEST_NAME(SiteUtil.reg_value(request, "test_name","", "1"));//이름
  BeenVO.setTEST_FILENAME("");//파일명
  BeenVO.setTEST_FILESIZE("0");//파일사이즈
  BeenVO.setTEST_ORG_FILENAME("");//파일 원본명
  BeenVO.setTEST_IMGNAME("");//이미지명
  BeenVO.setTEST_IMGSIZE("0");//이미지사이즈
  BeenVO.setTEST_ORG_IMGNAME("");//이미즈 원본명
  BeenVO.setTEST_CON(SiteUtil.reg_value(request, "test_con","", "1"));//내용   
  
  int Board_Result_int=f_SimpleDAO.Add_Ok( BeenVO);//list 실행
  
 // DAO - End ============================================ 

  if (Board_Result_int>0)  return  LocationGo( "입력이 성공하였습니다.",MBoard_ListURL,mapping,request);   
  else  return  LocationGo( "입력이 실패하였습니다.","go-1",mapping,request);  
 }
 
 
2.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=add_ok 접근시 처리 결과를 리턴한다.
 
   
 4.7.수정 처리 
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 데이터 수정 기능 처리를 아래 처럼 정의한다.
 
 
 /**
  * <p>수정처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward edit_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 
// DAO - Start ============================================
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_TITLE(SiteUtil.reg_value(request, "test_title","", "1"));//제목
  BeenVO.setTEST_NAME(SiteUtil.reg_value(request, "test_name","", "1"));//이름 
 
  BeenVO.setTEST_CON(SiteUtil.reg_value(request, "test_con","", "1"));//내용    
  BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));//번호 
  
 
  int Board_Result_int=f_SimpleDAO.Edit_Ok( BeenVO);//수정처리 실행
 // DAO - End ============================================ 
  
  if (Board_Result_int>0) {
    return LocationGo("수정이 성공하였습니다.",MBoard_ListURL,mapping,request);
  }
  else return  LocationGo("수정이 실패하였습니다.","go-1",mapping,request);
 } 
 
 
 
 
2.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=edit_ok&test_num=데이터번호 접근시 처리 결과를 리턴한다.
 
 
  4.8.삭제 처리
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 데이터 삭제 기능 처리를 아래 처럼 정의한다.
 
 
 /**
  * <p>삭제처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward del_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   

  // DAO - Start ============================================
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));//번호 
  

  int Board_Result_int=f_SimpleDAO.Del_Ok(BeenVO);//삭제처리실행
 // DAO - End ============================================ 
  
  if (Board_Result_int>0) {
    
    return LocationGo("삭제가 성공하였습니다.",MBoard_ListURL,mapping,request);
  }
  else return  LocationGo("삭제가 실패하였습니다.","go-1",mapping,request);
 }
 
 
 
2.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=del_ok&test_num=데이터번호 접근시 처리 결과를 리턴한다.
 
 
 5.1.파일 업로드시 파라미터 처리
입력/수정 폼에서 ENCTYPE='multipart/form-data' 형태로 데이타를 전송을 하였을 경우 
SiteUtil.reg_value함수를 써서 request 해서 파라미터를 추가하던 방식에 대해서 post로 넘어 데이타에 대해서는
인자값을 HttpServletRequest형태가 아닌  FileUpload 인자값 형태로 바꾸어서 함수를 호출해야한다.
 
 
 이전- 예)  SiteUtil.reg_value(request, "test_title","", "1");//제목
 
 변경- 예) SiteUtil.reg_value(FileUpload, "test_title","", "1")//제목
 
 
이때 파일 업로드가 없더라도 ENCTYPE='multipart/form-data' 형태로 데이타를 전송을 하였기에
 
 
 FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화
 if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{})){}//업로드 성공
 
 
위에 코드를 파라미터 실행하기 전에 해줘야 정상 작동이 된다.
 
 
 5.2.파일 업로드
업무 처리 프로세스 단인 Action Class 최상단 환경 정보에 저장 서브 폴더명을 지정하고 다음 같이 파일 업로드 코드를 구성한다.
 
 
// FileUpload -Start ====================================== 

  // *Notice - ENCTYPE='multipart/form-data-로 업로드시 반드시 파일업로드 매니저 호출
 
   FileUploadBeen FileUploadVo_File=new FileUploadBeen();//파일 업로드 정보를 Vo저장한다.
  
FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화

 
if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{})){//업로드 성공
 
  FileUploadVo_File=FileUpload.fileUploadParamChk("test_filename");
  //파일 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
 }//업로드 성공
 else{//업로드 실패
 } //업로드 실패

// FileUpload -End ====================================== 
 
 
위에 fileUpLoadAction(FileSaveSubFolder, new String[]{})) 파란색코드는
모든 업로드 파일에서 기본 업로드 제외 확장자(jsp,exe)를 제외한  업로드 가능하다는 뜻이고
여기서 원하는 파일 형태만 업로드할려   String[]{"image","zip"})) 형식으로 제외 확정 명칭을 지정할수있고.
아래 표를 참고 하면 된다.
 
업로드 된 파일 중 해당 파라미터만 이미지,Zip 형태만 업로드 지정을 원할 경우 위 처럼 업로드 가능한 확장 명칭을 지정할수있다.
예) FileUpload.fileUploadParamChk("TEST_FILENAME",String[]{"image","zip"});
 

제외 확장자 명칭

 제외 확장자 들

기본 제외 확장자  jsp,exe
 image  jpg,jpeg,gif,bmp,pcx,png
 zip  zip,alz,gz,tar,z,rar,ace,bz,bz2
 text  txt,text,rtf,2b
 html  htm,html
 hwp  hwp,h30
 exe  exe
 font  font
 movie  avi,mpg,mpeg,mqv,asf,wmv,mov
 sound  wav,mp3,mid,wma
 jsp  jsp
 csv  csv
 
String[]{"image","zip"}는 jpg,jpeg,gif,bmp,pcx,png,zip,alz,gz,tar,z,rar,ace,bz,bz2 확장자 파일을 제외하고 
그외에 파일은 자동으로 업로드를 거부하고 업로드 된 파일등은 자동으로 삭제된다.
   
 5.3.파일 다운로드
 1.업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분에 파일 다운로드 기능 처리를 아래 처럼 정의한다.
 
 
 /**
  * <p>파일 다운로드</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward fileDown(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
      BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));//번호
      
  String TEST_FILENAME="";
  
   if (!(TEST_FILENAME=f_SimpleDAO.getFileName(BeenVO)).equals("")){//파일 명이 있으면
 
   System.out.println("TEST_FILENAME==>"+TEST_FILENAME);
   request.setAttribute("DownFileName",TEST_FILENAME);//저장 파일명
   return mapping.findForward(FORWARD_FileDown); //Page Forward.
   }
   else return null;//중단
   
 } 
 
 
 
2.그럼 http://도메인/Service/기능논리명(테이블명).do?cmd=fileDown&test_num=데이터번호 접근시 파일을 다운로드한다.
 
 
 5.4.이미지 업로드
파일 업로드와 동일한 방식으로 처리되며 부분적으로 아래와 같이 다르게 구성 된다. 
 
 
// FileUpload -Start ====================================== 
  // *Notice - ENCTYPE='multipart/form-data-로 업로드시 반드시 파일업로드 매니저 호출
   FileUploadBeen FileUploadVo_Img=new FileUploadBeen();//파일 업로드 정보를 Vo저장한다.
  
FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화

 
if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{})){//업로드 성공
 
   FileUploadVo_Img=FileUpload.imageUploadParamChk("test_imgname");
  //이미지 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
 
 }//업로드 성공
 else{//업로드 실패
 } //업로드 실패
 
// FileUpload -End ====================================== 
 
모든 업로드 파일에서 이미지만 업로드하기 원할 경우 if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{}))를
FileUpload.imageUpLoadAction(FileSaveSubFolder) 로 변경 업로드
업로드된 파일 중 해당 파라미터만 이미지 업로드 지정을 원할 경우 FileUpload.fileUploadParamChk("test_filename");를
FileUploadVo_Img=FileUpload.imageUploadParamChk("test_imgname"); 로 변경 업로드 가능하다.
 
 5.5.이미지 보여주기
html design 단에서 아래와 같이 다르게 구성 된다. 
 
 
  <% if (!TEST_IMGNAME.equals("")) out.println(ImageView(TEST_IMGNAME));%>
 
 
ImageView 함수에 이미지 명을 인자 값으로 전달하면 이미지가 출력된다.
 
 
 5.6.입력 처리시 파일 처리
1.입력 처리시와 동일한 방식으로 처리되며 부분적으로 업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분이 아래와 같이 다르게 구성 된다
 
 

 /**
  * <p>입력처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward add_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 // FileUpload -Start ======================================
 // *Notice - ENCTYPE='multipart/form-data-로 업로드시 반드시 파일업로드 매니저 호출
 
  FileUploadBeen FileUploadVo_File=new FileUploadBeen();//파일 업로드 정보를 Vo저장한다.
  FileUploadBeen FileUploadVo_Img=new FileUploadBeen();//이미지 업로드 정보를 Vo저장한다.
  FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화
  if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{})){//업로드 성공
   FileUploadVo_File=FileUpload.fileUploadParamChk("test_filename");//파일 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
   FileUploadVo_Img=FileUpload.imageUploadParamChk("test_imgname");//이미지 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
  }//업로드 성공
  else{//업로드 실패
  } //업로드 실패
 // FileUpload -End ====================================== 

 // DAO - Start ============================================
  
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_TITLE(SiteUtil.reg_value(FileUpload, "test_title","", "1"));//제목
  BeenVO.setTEST_NAME(SiteUtil.reg_value(FileUpload, "test_name","", "1"));//이름
  BeenVO.setTEST_FILENAME(FileUploadVo_File.getSaveFileName());//파일명
  BeenVO.setTEST_FILESIZE(FileUploadVo_File.getFileSize());//파일사이즈
  BeenVO.setTEST_ORG_FILENAME(FileUploadVo_File.getOrgFileName());//파일 원본명
  BeenVO.setTEST_IMGNAME(FileUploadVo_Img.getSaveFileName());//이미지명
  BeenVO.setTEST_IMGSIZE(FileUploadVo_Img.getFileSize());//이미지사이즈
  BeenVO.setTEST_ORG_IMGNAME(FileUploadVo_Img.getOrgFileName());//이미즈 원본명
  BeenVO.setTEST_CON(SiteUtil.reg_value(FileUpload, "test_con","", "1"));//내용   
  
  int Board_Result_int=f_SimpleDAO.Add_Ok( BeenVO);//list 실행
  
 // DAO - End ============================================ 
  if (Board_Result_int>0)  return  LocationGo( "입력이 성공하였습니다.",MBoard_ListURL,mapping,request);   
  else  return  LocationGo( "입력이 실패하였습니다.","go-1",mapping,request);  
 }
 
 
 5.7.수정 처리시 파일 처리
1.수정 처리시와 동일한 방식으로 처리되며 부분적으로 업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분이 아래와 같이 다르게 구성 된다
 
 

 /**
  * <p>수정처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward edit_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
 // FileUpload -Start ======================================
 // *Notice - ENCTYPE='multipart/form-data-로 업로드시 반드시 파일업로드 매니저 호출
 
  FileUploadBeen FileUploadVo_File=new FileUploadBeen();//파일 업로드 정보를 Vo저장한다.
  FileUploadBeen FileUploadVo_Img=new FileUploadBeen();//이미지 업로드 정보를 Vo저장한다.
  FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화
  if (FileUpload.fileUpLoadAction(FileSaveSubFolder, new String[]{})){//업로드 성공
   FileUploadVo_File=FileUpload.fileUploadParamChk("test_filename");//파일 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
   FileUploadVo_Img=FileUpload.imageUploadParamChk("test_imgname");//이미지 업로드 파라미터 확장자 체크후 성공이면 Vo정보 리턴 아니면 파일 삭제
  }//업로드 성공
  else{//업로드 실패
  } //업로드 실패
 // FileUpload -End ====================================== 
 // DAO - Start ============================================
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
  BeenVO.setTEST_TITLE(SiteUtil.reg_value(FileUpload, "test_title","", "1"));//제목
  BeenVO.setTEST_NAME(SiteUtil.reg_value(FileUpload, "test_name","", "1"));//이름
  if (!FileUploadVo_File.getSaveFileName().equals("")){//파일이 있으면
   BeenVO.setTEST_FILENAME(FileUploadVo_File.getSaveFileName());//파일명
   BeenVO.setTEST_FILESIZE(FileUploadVo_File.getFileSize());//파일사이즈
   BeenVO.setTEST_ORG_FILENAME(FileUploadVo_File.getOrgFileName());//파일 원본명
  }//파일이 있으면
  if (!FileUploadVo_Img.getSaveFileName().equals("")){//이미지가  있으면
   BeenVO.setTEST_IMGNAME(FileUploadVo_Img.getSaveFileName());//이미지명
   BeenVO.setTEST_IMGSIZE(FileUploadVo_Img.getFileSize());//이미지사이즈
   BeenVO.setTEST_ORG_IMGNAME(FileUploadVo_Img.getOrgFileName());//이미즈 원본명
  }//이미지가  있으면
  BeenVO.setTEST_CON(SiteUtil.reg_value(FileUpload, "test_con","", "1"));//내용    
  BeenVO.setTEST_NUM(SiteUtil.reg_value(FileUpload, "test_num","", "1"));//번호
  
   String TEST_FILENAME=f_SimpleDAO.getFileName(BeenVO);//파일업로드이면 삭제하기 위해 기존 파일명을 가져온다.
   String TEST_IMGNAME=f_SimpleDAO.getImgFileName(BeenVO);//이미지 업로드이면 삭제하기 위해 기존 이미지 명을 가져온다.
  
  int Board_Result_int=f_SimpleDAO.Edit_Ok( BeenVO);//수정처리 실행
 // DAO - End ============================================ 
  
  if (Board_Result_int>0) {
   
   if ((!FileUploadVo_File.getSaveFileName().equals("")) && (!(TEST_FILENAME).equals(""))){//업로드 파일 있으면 -삭제 
    if (FileUpload.deleteUploadFile(FileSaveSubFolder, TEST_FILENAME)){//업로드 파일 삭제 성공
      System.out.println("TEST_FILENAME-Delete has finished up a successful==>"+TEST_FILENAME);
    }
    }//업로드 파일 있으면 -삭제 
    if ((!FileUploadVo_Img.getSaveFileName().equals("")) &&(!(TEST_IMGNAME ).equals(""))){//업로드 이미지 파일 명이 있으면 -삭제 
     if (FileUpload.deleteUploadFile(FileSaveSubFolder, TEST_IMGNAME)){//업로드 파일 삭제 성공
       System.out.println("TEST_IMGNAME-Delete has finished up a successful==>"+TEST_IMGNAME);
     }
    }//업로드 이미지 파일 명이 있으면 -삭제 
    return LocationGo("수정이 성공하였습니다.",MBoard_ListURL,mapping,request);
  }
  else return  LocationGo("수정이 실패하였습니다.","go-1",mapping,request);
 } 
 
 
 5.8.삭제 처리시 파일 처리
1.삭제 처리시와 동일한 방식으로 처리되며 부분적으로 업무 처리 프로세스 단인 Action Class에서 cmd(기능 호출 파라미터)값에 따라 분기 처리하는 부분이 아래와 같이 다르게 구성 된다
 
 
  
 /**
  * <p>삭제처리</p>
  * @param mapping ActionMapping
  * @param form ActionForm
  * @param request HttpServletRequest
  * @param response HttpServletResponse
  * @return  Result
  * @throws Exception
  */
 public ActionForward del_ok(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{   
  // DAO - Start ============================================
  SimpleDAO f_SimpleDAO=SimpleDAO.getInstance();
  SimpleVO BeenVO=new SimpleVO();
  
      BeenVO.setTEST_NUM(SiteUtil.reg_value(request, "test_num","", "1"));//번호
  
   String TEST_FILENAME=f_SimpleDAO.getFileName(BeenVO);//파일업로드이면 삭제하기 위해 기존 파일명을 가져온다.
   String TEST_IMGNAME=f_SimpleDAO.getImgFileName(BeenVO);//이미지 업로드이면 삭제하기 위해 기존 이미지 명을 가져온다.
  
  int Board_Result_int=f_SimpleDAO.Del_Ok(BeenVO);//삭제처리실행
 // DAO - End ============================================ 
  
  if (Board_Result_int>0) {
   
   if (!(TEST_FILENAME).equals("")){//파일 명이 있으면-삭제
    FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화
    if (FileUpload.deleteUploadFile(FileSaveSubFolder, TEST_FILENAME)){//업로드 파일 삭제 성공
      System.out.println("TEST_FILENAME-Delete has finished up a successful==>"+TEST_FILENAME);
    }
   }//파일 명이 있으면-삭제
   if (!(TEST_IMGNAME ).equals("")){//이미지 파일 명이 있으면 -삭제
    FileUpload  FileUpload=new FileUpload(request);//파일 업로드 생성 초기화
    if (FileUpload.deleteUploadFile(FileSaveSubFolder, TEST_IMGNAME)){//업로드 파일 삭제 성공
      System.out.println("TEST_IMGNAME-Delete has finished up a successful==>"+TEST_IMGNAME);
    }
   }//이미지 파일 명이 있으면 -삭제
   
    return LocationGo("삭제가 성공하였습니다.",MBoard_ListURL,mapping,request);
  }
  else return  LocationGo("삭제가 실패하였습니다.","go-1",mapping,request);
 }
 
 
 



  Copyright 2008-2011 (c) G-line Communications Corp All Rights Reserved.