본문 바로가기

일경험

[국민취업지원제도 일경험프로그램 44일차] 결재 시스템 프로젝트③ 특정 사용자에게만 버튼 보이기

반응형

44일차 특이사항

1. 로그인 했는데 게시글 리스트 조회가 되지 않는다. 

- 로그인 요청 url과 게시글 리스트 조회 url이 동일해서 발생하는 문제다. 

   - /login/login url 요청에 게시글 리스트 조회 기능을 넣어줬다. 

 

과장, 부장만 대리결재 버튼이 보인다

1. 제약사항 중에 과장, 부장만 대리결재 버튼이 보인다는 조건이 있다. 

- 세션에 저장된 회원 정보를 확인하여 memrank가 boss, king인 경우만 '대리결재'버튼이 활성화 된다. 

- jstl문을 사용해보자. 

<c:if test="${member != null}">
    ${member.memname}(${member.memrank})님 환영합니다.
	    
    <c:choose>
        <c:when test="${member.memrank == 'BOSS' || member.memrank == 'KING'}">
            <input type="button" name="approval" id="approval" value="대리결재" onclick="location.href='approval'">
        </c:when>
        <c:otherwise>
        </c:otherwise>
    </c:choose>
</c:if>

근데 작동이 안 됨. 무엇이 문제인가? member 객체가 session에 저장되어 있다. 그런데 왜 안되지? 문법이 잘못됐나? 

 

2. 살펴보니 공백이 포함되어 있었다. 왜 공백이 들어갔을까? 누가 바람을 불어넣었나 

<c:if test="${member != null}">
    ${member.memname}(${member.memrank.trim()})님 환영합니다.
</c:if>

<c:if test="${member.memrank.trim() eq 'KING' || member.memrank.trim() eq 'BOSS'}">
    <input type="button" name="approval" id="approval" value="대리결재" onclick="location.href='approval'">
</c:if>

- .trim() 함수를 사용해서 공백을 제거해주니 memrank가 'KING', 'BOSS'인 경우 대리결재 버튼이 생성된다. 

 

느낀 점

브라우저상에 출력이 잘 되는지 다시 한번 확인해보자. 글자 뒤에 공백이 포함되어 있으면 다르게 해석한다. 미세한 부분을 잘 봐야 한다. 

 

 

대리결재 버튼 조건주기
memrank가 BOSS 혹은 KING만 대리결재 버튼이 보인다.

 

 

 

반응형