본문 바로가기

Language/JAVA

게시판 이름(김철수) -> 이름(김*수) 치환

표준프레임워크 공통컴포넌트 게시판 이름 치환하기.(보안)

뭐 표프라고 보기도 힘들다.


공통컴포넌트 게시판에 김철수 라는 작성자명을 등록했다고 하자.

근데 보안상 이유로 김*수 라는 형태로 바꾸라는 요구사항이 있을 경우.

Controller(MVC2)나 DB 또는 자바스크립트 등 다양한 형태로 변경이 가능하지만,

제일 빠른 방법이 필요할 때 아래 방식을 사용하면 되겠다. 

(나는 엄청 원론적인 방법을 생각했지만...내 사수의 코드가 기가 맥혔기 때문에 기록한다.)



반드시 선언 필요 태그라이브러리 없이 어케 c:를 쓸 것인지는 기본으로 제쳐두고

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



JSP 코드에 아래와 같이 들어가 있을 것이다.


<td><c:out value="${resultInfo.wrterNm}"/></td>


resultInfo.wrterNm에 김철수라는 테이블 데이터를 출력된다.


하지만 아래와 같이 var 이름을 wrterNmLength 로잡아 c:choose를 사용해 조건을 만든다.

(조건을 만들지 않을 경우 발생되는 예외 상황은 알아서 추가하던가 가정을 하면 될듯)


fn:substrin 쪼개기 기능을 통해 나눈다. 


 <td>

<c:set var="wrterNmLength" value="${fn:length(resultInfo.wrterNm)}"/>

    <c:choose>

        <c:when test="{fn:length(resultInfo.wrterNm) > 1}">

<c:out value='${fn:substring(결과정보.작성자명, 0, 1)}'/>*<c:out value='${fn:substring(결과정보.작성자명, 1+1, 작성자명길이)}'/>

        </c:when>

            <c:otherwise><c:out value="${결과정보.작성자명}"/></c:otherwise>

    </c:choose>

</td>



아래와 같이 구현 시


김*수 로


테이블 데이터가 출력되는지 확인이 가능하다.