요소기술 - 위지위그 에디터(WYSIWYG Editor)

개요

다양한 위지위그 에디터에 대한 요구에 따라 Htmlarea 이외에 새로운 에디터를 제공한다.
게시판, 자료실의 메모장에서 사용자가 자유롭게 컨텐츠를 편집할 수 있는 기능의 컴포넌트을 제공한다.
텍스트 및 HTML 편집 기능을 지원하고, 이미지 업로드 및 이미지를 편집기에 보여주는 기능이 있어야 한다.
웹 에디터는 웹 브라우저에서 게시판, 공지사항, 자료실, 사진첩과 같이 입력기능이 있는 곳에서 사용할 수 있다.

본 기능은 전자정부 표준프레임워크 공통컴포넌트 요소기술 내에 구성되어 있다.

설명

오픈소스인 CKEditor를

관련소스
유형대상소스설명비고
Utilegovframework.com.cmm.util.EgovDoubleSubmitHelper.java중복 방지 처리 관련 유틸리티
TagSupportegovframework.com.cmm.taglibs.DoubleSubmitTag.javaTag class
tld/WEB-INF/META-INF/double-submit.tldtld(tag library description) 파일

환경설정

해당없음

사용방법

우선 등록화면 및 수정화면의 JSP에 다음과 같은 taglib를 적용한다.

<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %>
...
 
<form ...>
    <double-submit:preventer/>
</form>

이렇게 되면 세션에 고유 UUID 정보를 생성한 후에 파라미터로 해당 UUID 값을 기록한다.

다음으로 Controller의 각 메소드에 실제 Service를 호출하는 부분을 다음과 같이 변경한다.

* 변경 전

if (isAuthenticated) {
    notification.setFrstRegisterId(user.getUniqId());
 
    notificationService.insertNotificationInf(notification);
 
}

* 변경 후

if (isAuthenticated) {
    notification.setFrstRegisterId(user.getUniqId());
 
    if (EgovDoubleSubmitHelper.checkAndSaveToken()) {  
        notificationService.insertNotificationInf(notification);
    }
}

EgovDoubleSubmitHelper.checkAndSaveToken() 메소드에서 내부적으로 현재 기록된 세션상의 UUID와 파라미터의 UUID 값이 같은지 비교 후, 동일한 경우 새로운 UUID를 세션 상에 기록한 후 return true로 처리된다. 새로운 UUID가 세션에 변경되었기 때문에 동일한 request가 재 호출시 세션의 UUID와 이전 파라미터의 UUID 값이 다르기 때문에 return false로 처리되어 실제 등록 처리 등을 생략할 수 있다.

사용방법 (여러 화면으로 접근되는 경우)

위의 방식은 세션을 사용하기 때문에 하나의 웹 시스템을 여러 브라우저로 동시에 사용하는 경우 동일한 세션 ID로 인하여 서로 간섭될 수 있다.

이 경우 다음과 같은 방식으로 token key를 지정함으로써 간섭을 회피할 수 있다. (동일한 업무를 접근하는 경우는 원칙적으로 회피 불가)

<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %>
...
 
<form ...>
    <double-submit:preventer tokenKey="someKey"/>
</form>
if (isAuthenticated) {
    notification.setFrstRegisterId(user.getUniqId());
 
    if (EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {  
        notificationService.insertNotificationInf(notification);
    }
}

참고자료

 
egovframework/com/v3/utl/wysiwyg_editor.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki