EL

18.<c:url> 태그와 <c:param> 태그

Jungsoomin :) 2020. 7. 15. 22:41

<c:url> 태그는 URL에 자동으로 Context Path 를 붙여주는 일을 한다. 그리고 URL을 변수에 담아주는 역할을 한다.

 

컨텍스트를 변경하더라도 URL을 수정할 필요가 없어진다 고하니, 강력한 태그라고 보고 싶다.

  1. <c:url> 태그value 값이 컨텍스트 패스 경로 뒤의 URL이다.

  2. <c:url> 태그의 var 속성생성한 URL을 변수에 담아 다른 곳에서 사용케 한다.

  3. <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