JSTL의 <c:param> 태그는 URL에 요청 파라미터를 올바르게 지정할 수 있게 해주며, 필요한 URL 인코딩까지 자동으로 처리해 주는 태그입니다.
<c:param> 태그 내부에서는 name 속성이 파라미터의 이름을 나타내고, value 속성이 파라미터의 값을 나타냅니다.
<c:param> 태그의 속성
<c:param> 태그는 다음과 같은 속성을 가지고 있습니다.
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| name | URL에 설정할 요청 파라미터의 이름 | 필수 | 없음 |
| value | URL에 설정할 요청 파라미터의 값 | 선택 | 태그 본문(Body) |
사용 예제
<c:import> 태그로 페이지를 가져올 때 파라미터를 함께 전달해야 하는 경우가 있습니다. 이때는 아래와 같이 먼저 <c:url> 태그로 URL을 생성하고, 그 안에 <c:param> 태그를 사용하면 됩니다.
<c:url value = "/index.jsp" var = "myURL">
<c:param name = "trackingId" value = "1234"/>
<c:param name = "reportType" value = "summary"/>
</c:url>
<c:import url = "${myURL}"/>
위 코드가 실행되면 다음과 같은 형태의 URL이 생성되어 요청을 전달합니다.
"/index.jsp?trackingId=1234;reportType=summary"
이처럼 <c:param> 태그를 활용하면 특수문자나 공백이 포함된 값도 자동으로 인코딩되어 안전하게 파라미터를 전달할 수 있으므로, 직접 문자열을 연결해 쿼리스트링을 만드는 것보다 훨씬 안정적입니다.