LaBee Framework 응답 설정(파일 다운로드), 업로드 방법

LaBee Framework는 자바가 웹 시스템을 개발하는 공장 표준을 목표로 제로부터 제작하는 국산 자바 프레임워크다.해외 제조틀 특유의 난해함과 정보 부족으로 인한 노동시간과 인력 증가를 해결하고 자바의 웹 개발 효율성을 높이기 위해 제작됐다.LGPL 라이센스에 오픈 소스 코드가 공개되어 개인과 기업 모두 무료로 사용 가능
https://www.bee-wkspace.com/

상업 논리 랜덤 응답


부모 클래스에서 여러 개의 상업 논리 처리가 끝날 때의 응답 설정 방법을 정의했습니다.응답 설정을 변경함으로써 다른 상업 논리나 위탁 응답으로 간단하게 방향을 바꿀 수 있다.
상업 논리 응답 설정 유형
응답 유형
개요
일반적
responseContext에서 설정하지 않으면 기본적으로 상업 논리와 같은 화면 ID의 JSP로 변환됩니다.
setRedirectResponse(String target, String execute, String... param)
지정한 목표의 이벤트 처리를 다시 호출합니다.
setRedirectURL(String redirectURL, String statusCode, HashMap headerMap)
지정된 URL을 리디렉션합니다.
setDelegateResponse(String target, String execute, String... params)
지정한 목표의 이벤트 처리를 직접 실행하고 응답을 의뢰합니다.위탁 횟수의 제한을 받지 않고 여러 개의 상업 논리를 직렬로 집행할 수 있다.
setAjaxJsonResponse(JsonValueContext jsonvalContext)
'ID 이름, 설정 값' 형식의 JSON의 응답을 되돌려주고 비즈니스 논리와 같은 화면 ID의 JSP로 변환하여 지정한 ID의 대상 내용을 동적으로 바꿉니다.
setOtherScreenIdResponse(String screenId)
다른 화면 ID의 JSP로 마이그레이션하기 위한 응답 설정입니다.목적지 jsp에서는 커서 참고 클래스와 일치하거나 커서 참고를 사용하지 않아야 합니다.

파일 다운로드


비즈니스 논리 처리가 끝났을 때의 응답 정보를 가진responseContext를 설정하면 파일을 응답 (파일 다운로드) 으로 되돌려줍니다.파일 유형은 일반 텍스트, CSV, JSON, XML, 바이너리를 지원합니다.
JSON의 블로그 다운로드 방법 설치 예
    /**
     * JSONをダウンロードするイベント処理。
     */
    @FwExeMethod
    public ResponseContext jsonDownload() throws FwException {
        try {
            Map<String, Object> dataMap = new HashMap<String, Object>();
            dataMap.put("Language", "Java");
            List<String> dataList = new ArrayList<String>();
            dataList.add("Windows");
            dataList.add("Mac");
            dataList.add("Linux");

            dataMap.put("Enviroment", dataList);

            JsonUtil<Map<String, Object>> jsonUtil = new JsonUtil<Map<String, Object>>();
            String json = jsonUtil.encodeToString(dataMap);
            responseContext.setExportFileName("Sample.json");
            responseContext.setResponseType(ResponseContext.RESPONSE_TYPE_JSON);
            responseContext.setResponseJson(json);
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }
CSV의 Blogic 메소드 설치 예 다운로드
    /**
     * CSVをダウンロードするイベント処理。
     */
    @FwExeMethod
    public ResponseContext jsonDownload() throws FwException {
        try {
            StringBuilder csv = new StringBuilder();
            csv.append("北海道");
            csv.append(CommonDefine.COMMA);
            csv.append("青森");
            csv.append(CommonDefine.COMMA);
            csv.append("秋田");
            csv.append(CommonDefine.COMMA);
            csv.append("岩手");

            responseContext.setExportFileName("Sample.csv");
            responseContext.setResponseType(ResponseContext.RESPONSE_TYPE_CSV);
            responseContext.setResponseCsv(csv.toString()); 
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }
바이너리를 다운로드하는 Blogic 방법의 예

    /**
     * バイナリをダウンロードするイベント処理。
     */
    @FwExeMethod
    public ResponseContext jsonDownload() throws FwException {
        try {
            byte[] binary = new String("バイナリテスト").getBytes();
            responseContext.setExportFileName("Sample.bin");
            responseContext.setResponseType(ResponseContext.RESPONSE_TYPE_BINARY);
            responseContext.setResponseBinary(binary);
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }

파일 업로드


LaBeeFramework는 웹 화면에서 파일을 간단하게 업로드할 수 있으며 비즈니스 논리로 얻을 수 있다.특별한 처리는 거의 필요 없다.샘플 예제에서 웹 화면(JSP)에서 파일을 선택한 후 제출하면 비즈니스 논리로 얻은 파일 내용을'삐'에 불러오고 JSP에 응답합니다.
JSP 설치 예

<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ page session="false"%>
<%@ taglib prefix="LaBee"  uri="/WEB-INF/lib/LaBeeFramework.jar"%>
<jsp:useBean id="bean" class="sample.bean.web.SampleBean" scope="request" />
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <LaBee:header requestScope="${requestScope}"/>
</head>
<body>
    <form name="mainForm" method="post" action="ctrl">
        <input type="file" name="file">
        <br>    

        <button type="button"
            onClick="<LaBee:postMultiPartSubmit
            target="web.Sample"
            execute="upload" 
            formName="mainForm"/>">
            ファイル送信
         </button>          

         <div>
            ${bean.uploadFileName}
         </div>
         <div>
            ${bean.uploadText}
         </div>
    </form>
</body>
</html>         
  • 열 16 파일 선택 레이블을 설정합니다.
  • 20번째 줄 단추를 눌렀을 때 LaBee:postMultipPartSubmit 사용자 정의 탭을 사용하여 여러 부분을 보냅니다.
  • Bean 설치 예
    package sample.bean.web;
    import java.io.Serializable;
    import com.bee_wkspace.labee_fw.app.base.AppBaseBean;
    /**
     * ファイルアップロードサンプルビーンクラス
     */
    public class SampleBean extends AppBaseBean implements Serializable {
        /** アップロードファイルテキスト */
        private String uploadText;
        /** アップロードファイル名 */
        private String uploadFileName;
        /**
         * コンストラクタ。
         */
        public SampleBean() {
            super();
        }
        /**
         * @return uploadText
         */
        public String getUploadText() {
            return uploadText;
        }
        /**
         * @return uploadFileName
         */
        public String getUploadFileName() {
            return uploadFileName;
        }
        /**
         * @param uploadText セットする uploadText
         */
        public void setUploadText(String uploadText) {
            this.uploadText = uploadText;
        }
        /**
         * @param uploadFileName セットする uploadFileName
         */
        public void setUploadFileName(String uploadFileName) {
            this.uploadFileName = uploadFileName;
        }
    }       
    
    
    블로그 설치 예
    
        package sample.blogic.web;
        import sample.bean.web.SampleBean;
        import com.bee_wkspace.labee_fw.app.base.AppBaseBlogic;
        import com.bee_wkspace.labee_fw.core.annotation.FwBlogic;
        import com.bee_wkspace.labee_fw.core.annotation.FwExeMethod;
        import com.bee_wkspace.labee_fw.core.context.ResponseContext;
        import com.bee_wkspace.labee_fw.exception.FwException;
        /**
         * ファイルアップロードサンプルビジネスロジック
         */
        @FwBlogic(beanReuse = false)
        public class SampleBlogic extends AppBaseBlogic<SampleBean> {
            /**
             * コンストラクタ。
             */
            public SampleBlogic() {
                super();
            }
            /**
             * ファイルアップロードイベント処理。
             */
            @FwExeMethod
            public ResponseContext upload() throws FwException {
                try {
                    // 受信したファイル内容をビーンに格納
                    bean.setUploadFileName(super.uploadFileContext.getFileName());
                    bean.setUploadText(super.uploadFileContext.getUploadString());
    
                } catch (Exception e) {
                    throw new FwException(e);
                }
                return responseContext;
            }
        }
    
    
  • 31줄~32줄에 올라온 파일 정보를 유리지에 저장한다.업로드된 파일 정보는 부모 클래스가 정의한com입니다.bee_wkspace.labee_fw.core.context.FileUploadContext 클래스의 uploadFileContext 실례는 자동으로 저장되기 때문에 설치자는 아무것도 하지 않고 업로드 파일 정보를 얻을 수 있습니다.
  • FileUploadContex 클래스 개요
    메서드 이름
    개요
    String getFileName()
    업로드한 파일의 이름을 반환합니다.
    byte[] getUploadFileByte()
    업로드된 파일의 2진 바이트 그룹을 되돌려줍니다.
    String getUploadString()
    업로드된 파일을 문자열로 변환하고 되돌려줍니다.
    int getFileSize()
    업로드한 파일의 크기를 반환합니다.

    좋은 웹페이지 즐겨찾기