Core Tag( <c: ?> 태그

Ruinak·2021년 12월 27일
0

Glossary

목록 보기
25/26

<c:url> 태그

  • <c:url> 태그는 URL에 자동으로 Context Path 를 붙여주는 일을 합니다. 컨텍스트를 변경하더라도 URL을 수정할 필요가 없게 됩니다.

<c:url> 태그 사용법

  • 이 태그는 jstl core 태그에 포함되어 있으므로 <c:url> 을 사용하려면 아래와 같은 taglib 지시자를 페이지 상단에 포함하여야 합니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 일반적인 사용법은 아래와 같습니다.
<img src="<c:url value='/images/btn/add.png' />" />
  • 웹애플리케이션의 컨텍스트 패스가 http://도메인/site/ 로 되어 있다면 위의 코드는 출력시 아래와 같이 변환됩니다.
<img src="/site/images/btn/add.png" />
  • <c:url> 태그를 사용할 때 생성된 URL의 끝에 jsessionid 가 붙을 경우를 주의해야 합니다.
  • 컨텍스트 패스가 추가가 되므로 대부분의 경우 아래의 코드는 잘 동작합니다.
<img src="<c:url value='/' />/images/btn/add.png" />
  • 하지만 서버 설정에 때라 세션 아이디가 URL에 붙는 경우가 있습니다.
  • 이런 경우 위 코드는 출력이 다음과 같에 만들어져 오류가 발생합니다.
<img src="/site/;jsessiond=xxxxxx/images/btn/add.png" />
  • <a> 태그에 사용될 때 URL에 GET 방식으로 전달되는 파라미터가 많이 사용됩니다.
  • 아래와 같은 형식입니다.
<a href="<c:url value='/userSearch.do?name=홍길동&page=3' />">3 페이지</a>
  • 조회값이 계속 URL에 따라 다녀야 할 경우 입니다.
  • 이 경우 name의 값을 URL 인코딩을 해야 하는데 <param> 프로퍼티를 사용해서 인코딩 할 수 있습니다.
<c:url value="/userSearch.do" var="url">
  <c:param name="name" value="홍길동" />
  <c:param name="page" value="3" />
</c:url>

<a href="${url}">3 페이지</a>
  • <c:url> 태그의 var 속성은 생성된 URL을 변수에 할당하여 다른곳에 사용할 수 있도록 해 줍니다.
  • var 속성이 유용하게 사용될 수 있는 곳에 <form:form> 태그 입니다.
  • <form:form> 태그의 action 속성에는 <c:url> 태그를 사용할 수 없습니다.
  • 그러므로 변수에 셋팅한 후에 폼 태그에서 사용할 수 있습니다.
<c:url value="/insert.do" var="insertUrl" />
<form:form action="${insertUrl}">
...
</form>
  • 참고로 <c:url> 태그를 사용하지 않고도 jsp 컨텍스트 패스를 붙이려면 다음과 같이 사용하면 되겠습니다.
<form:form action="${pageContext.request.contextPath}/insert.do">
...
</form>

출처: https://offbyone.tistory.com/319 [쉬고 싶은 개발자]

<c:out> 태그

  • <c:out>은 화면에 결과값을 표출할 때 사용합니다.
  • 스크립틀릿의 <%= %>와 비슷합니다.
  • 간단한 ' . ' 표기법으로 사용이 편리합니다.
    - ex> <c:out value="data.name" />

<c:out> 태그 속성

<c:out> 태그 사용법

<c:set var="data" value="c태그 테스트입니다." />
<c:out value="${'안녕하세요'}"/> <br />
<c:out value="${data}"/>
  • 결과
    - 안녕하세요
    - c태그 테스트입니다.

출처 : https://blog.naver.com/object0108/221198650648 [JSTL] Core Tag - <c:out> 사용하기

profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글