로그인 상태에 따라 게시물 상세페이지 조회 제어하기
로그인 상태에 따라 게시물 상세페이지 조회 제어하기
1. 로그인 상태에 관계 없이 상세 페이지로 넘어가는 코드
- 현재 상태에서는 로그인 상태에 대한 체크를 하지 않기 때문에 제어를 할 수 없다.
<a href="detail.jsp?no=${board.no }">
<c:out value="${board.title }"/>
</a>
2. 미 로그인 상태일 때, doAction()함수로 confirm 창을 띄우는 방법
-
이처럼 로그인이 되어있는지 JSTL 문법으로 먼저 검증하면, 서블릿코드로 변환되어 조건에 맞는 스크립트문만 웹브라우저에 출력된다.
-
문제 : href 속성이 없어서 css의 hover, link 등의 효과가 적용되지 않는다.
<script type="text/javascript">
function doAction(no){
<c:choose>
<c:when test="${ not empty userVO}">
location.href = 'detail.jsp?no=' + no;
</c:when>
<c:otherwise>
if(confirm('로그인이 필요한 서비스입니다.\n 로그인페이지로 이동하시겠습니까?'))
location.href = "/Mission-Web/jsp/login/login.jsp"
</c:otherwise>
</c:choose>
}
</script>
<a onclick="doAction()">
<c:out value="${board.title }"/>
</a>
3. a태그에서 href="#"
으로 설정하기
- 문제 : href=”#”으로 설정하면, css 효과는 적용되지만 uri 뒤에
#
이 붙게 되어서 좋은 방법은 아니다.
<script type="text/javascript">
function doAction(no){
<c:choose>
<c:when test="${ not empty userVO}">
location.href = 'detail.jsp?no=' + no;
</c:when>
<c:otherwise>
if(confirm('로그인이 필요한 서비스입니다.\n 로그인페이지로 이동하시겠습니까?'))
location.href = "/Mission-Web/jsp/login/login.jsp"
</c:otherwise>
</c:choose>
}
</script>
<a href="#" onclick="doAction()">
<c:out value="${board.title }"/>
</a>
4. a태그의 href 속성에 javascript를 명시하기
<script type="text/javascript">
function doAction(no){
<c:choose>
<c:when test="${ not empty userVO}">
location.href = 'detail.jsp?no=' + no;
</c:when>
<c:otherwise>
if(confirm('로그인이 필요한 서비스입니다.\n 로그인페이지로 이동하시겠습니까?'))
location.href = "/Mission-Web/jsp/login/login.jsp"
</c:otherwise>
</c:choose>
}
</script>
<a href="javascript:doAction(${board.no })">
<c:out value="${board.title }"/>
</a>