<c:url> 태그는 URL에 자동으로 Context Path 를 붙여주는 일을 한다. 그리고 URL을 변수에 담아주는 역할을 한다.
컨텍스트를 변경하더라도 URL을 수정할 필요가 없어진다 고하니, 강력한 태그라고 보고 싶다.
-
<c:url> 태그의 value 값이 컨텍스트 패스 경로 뒤의 URL이다.
-
<c:url> 태그의 var 속성은 생성한 URL을 변수에 담아 다른 곳에서 사용케 한다.
-
<c:param>을 자식태그로 설정하면 태그의 name 속성과 value 속성을 쿼리스트링으로 가져갈 수 있다.
<body>
<%--
<c:url> 태그는
value="path" var="path1" scope="page" 속성이 있다.
--%>
<c:url value="../set/setEx1.jsp" var="path1" >
<c:param name="name" value="my name" />
<c:param name="comment" value="코멘트" />
</c:url>
<a href="${path1 }"> sample.jsp</a> <br />
<a href="${path1}">sample.jsp</a> <br />
</body>
즉 <c:url value="../set/setEx1.jsp"란 ContextPath/set/setEx1.jsp 로 경로가 잡힌다.
이후 정보는 개인적으로 좋아하고 존경하는(한번 도 뵌적이 없지만은..) 개발자 분의 블로그에 기술된 내용을 참조했다.
<a> 태그에 사용될 때 URL에 GET 방식으로 전달되는 파라미터가 많이 사용된다고 한다.
<a href="<c:url value='/userSearch.do?name=홍길동&page=1' />">1 페이지</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>
var 속성이 유용하게 사용될 수 있는 곳이 <form:form> 태그(springframwork의 커스텀태그로 기억한다.) 라고 하시며, <form:form> 태그의 action 속성에는 <c:url> 태그를 사용할 수 없습니다. 그러므로 변수에 셋팅한 후에 폼 태그에서 사용할 수 있습니다.
<c:url value="/insert.do" var="insertUrl" />
<form:form action="${insertUrl}">
...
</form>
참고 문서: offbyone.tistory.com/319 [쉬고 싶은 개발자] 님
'EL' 카테고리의 다른 글
17.<c:set>태그를 이용한 값 변경 target, value, property (0) | 2020.07.15 |
---|---|
16.<c:set> 태그와 <c:remove> 태그와 속성 (0) | 2020.07.15 |
15.<c:if> 와 test 속성 (0) | 2020.07.15 |
14. choose-when-otherwise (0) | 2020.07.15 |
13.function 사용 예제 (0) | 2020.07.15 |