[ URL 맵핑 넘기기 ]
- URL 맵핑 넘기기는 Java에서부터, RequestDispatcher 을 사용해 forward / include 방식으로 가능했다.
- JSP 액션태그를 사용하면 더욱 간단하게 사용이 가능했다.
[ 자바 ]
<% RequestDispatcher rd = request.getRequestDispatcher( URL );
rd.forward (req, resp); %>
[ JSP action 태그 ]
<jsp:forward page= "URL" />
<jsp:include page="/JSP_prac/includeTarget.jsp">
<jsp:param name="id2" value="Tom"/>
</jsp:include>
=> 이것의 JSTL 버전을 url 태그로 만들어둔 것.
[ JSTL 버전 URL 맵핑 ]
<c:url var="mypage" value="URL" />
: url 태그로, 맵핑할 url 을 변수로 담아두고 사용하면, 가독성을 높일 수 있다.
( 바로 url 에 주소를 입력해도 된다. )
(1) import 방식
<c:import url= "${mypage}" >
<c:param name="name" value="jho"/>
<c:param name="age" value="100"/>
</c:import>
: 현재 페이지에 import 방식으로 url 주소에 담아둔 jsp 를 가져오겠다.
( 가져오면서, import 하는 jsp 에 파라미터로 ?name=jho&age=100 준 값으로 가져오겠다. )
( param 주는 방식은 jsp action 태그와 똑같다. )
- JSTL import 방식은 RequestDispatch 에서 include 방식이라 봐도 된다.
- 현재 jsp 페이지에 주도권을 다시 가져오고, include 하는 jsp 를 가지고와서 완전히 포함해서사용한다.
- 두 페이지의 뷰단을 다 합친 결과물을 표시한다.
(2) redirect 방식
<c:redirect url="jstl_mapping.jsp">
<c:param name="name" value="jho"/>
<c:param name="age" value="100"/>
</c:redirect>
: 현재 페이지에서 forward 방식으로, url 주소까지 넘기겠다.
- 주도권이 아예 redirect 시킨 jsp 로 넘어간다.
- redirect 된 쪽의 VIEW 결과만 보여준다.
- 실제 URL 주소 자체도, redirect 된 주소로 넘어간다.
=> requestDispatcher 에서 forward 방식은,
주도권은 넘기지만, URL 주소자체는 여전히 처음 URL 주소를 유지한다.
JSTL redirect 방식을 사용하면,
마치 forward 방식 + response.sendRedirect 를 사용한 것처럼
forward를 시키면서 + URL 까지 해당 주소로 redirect 시키는 효과를 낸다.
'Back to the JSP' 카테고리의 다른 글
[JSTL] 조건문 <c:if /> <c:choose/when/otherwise /> (0) | 2022.08.13 |
---|---|
[JSTL] 반복문 <c: forEach items var varStatus /> (0) | 2022.08.13 |
[JSTL] <c: set /> 변수 : Java 와 EL 중개자 (0) | 2022.08.13 |
[JSP] EL - Expression Language (0) | 2022.08.11 |
jsp:useBean 사용시 jasperException 컴파일 오류. cannot be resolved to a type (0) | 2022.08.11 |