일단 에러 메세지부터
ERROR 30796 --- [nio-9000-exec-3] [dispatcherServlet]
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [/WEB-INF/jsp/view/mypage.jsp (line: [16], column: [16]) Expecting "jsp:param" standard action with "name" and "value" attributes] with root cause
org.apache.jasper.JasperException: /WEB-INF/jsp/view/mypage.jsp (line: [16], column: [16])
Expecting "jsp:param" standard action with "name" and "value" attributes] with root cause
- 문제 -
메세지를 읽어 보니 대충 jsp:param 을 넣어야 한다는 말인 거 같았다.
그런데 왜 이런 에러가 나는지 몰랐다.
에러가 난 부분을 찾아가 보니 코드는 아래와 같았다.
<!-- 에러가 나는 코드 -->
<jsp:include page="mypage.jsp">
</jsp:include>
딱히 문제될 게 없어 보이고 <jsp:include> 태그는 다른 페이지에서도 쓰던 걸 그대로 복사해서 붙여넣은 코드이기 때문에 오타도 없을 것이었다.
다른 페이지에서는 잘 되고 있던 코드인데 여기서는 되지 않았다.
굳이 다른 점을 찾자면 <jsp:include> 태그를 여는 태그와 닫는 태그 사이에 줄바꿈이 되어 있는 정도...?
설마 그거겠어...?
줄바꿈을 지우고 한 줄로 이어서 쓰니까 에러가 사라졌다.
<!-- 잘 작동하는 코드 -->
<jsp:include page="mypage.jsp"></jsp:include>
- <jsp:include> 쓸 때 <jsp:param> 가 없다면 줄바꿈 금지 -
<jsp:include> 를 쓸 때는 여는 태그와 닫는 태그 사이에 줄바꿈이 있어서는 안 되나 보다.
<jsp:param> 태그를 사이에 넣어줄 때만 줄바꿈을 쓰나 보다.
그래서 <jsp:param> 를 넣어달라는 에러 메세지가 떴었나 보다.
혹시나 해서 줄바꿈을 하고 사이에 <jsp:param> 태그를 넣어봤더니 잘 된다.
<!-- 잘 작동하는 코드 -->
<jsp:include page="mypage.jsp">
<jsp:param name="headerTitle" value="헤더 제목입니다" />
</jsp:include>
- 해결 -
<jsp:include> 를 쓸 때는 여는 태그와 닫는 태그 사이에 줄바꿈을 하지 말자.
줄바꿈을 넣으려면 <jsp:param> 태그를 넣어줘야 함.
- <jsp:param> 으로 넣어준 파라미터 꺼내서 쓰기 -
<jsp:param> 으로 넣어준 파라미터를 다른 페이지에서 받아서 쓸 때는 아래와 같다.
일단 request 로부터 parameter 를 꺼내오고, 다시 pageContext 에 넣어줘야 한다.
그러면 model 에서 꺼내서 쓰는 것처럼 ${} 기호로 꺼내서 쓸 수 있다.
<% String paramHeaderTitle = request.getParameter("headerTitle"); %>
<% pageContext.setAttribute("title", paramHeaderTitle); %>
<header class="header-container">
<div class="header">
<div class="header-left">
<a href="javascript:void(0); return false" onclick="onClickBackBtn(this.href); return false;"></a>
</div>
<h1>${title}</h1>
<div class="header-right">
<button type="button" onclick="onClickCloseBtn();">닫기</button>
</div>
</div>
</header>
- 241224
'Java' 카테고리의 다른 글
| [Java] 로컬에서 생성한 Date 를 DB 에 넣으면 값이 달라질 때 (1) | 2023.10.07 |
|---|---|
| 문자열 안에 포함된 HTML 태그 내용 지우기 정규식 RegExp 이용 replace (0) | 2022.10.05 |
| [Java] DB에서 Select 해온 Row에 새로운 List 추가하기 (1) | 2022.09.19 |
| [jsp] JSTL과 EL 안에서 문자열 이어붙이는 법 concat() 기능 '+' 연산 (0) | 2022.08.16 |
| [Java] lambda 에러 : Local variable doesntExistFlag defined in an enclosing scope must be final or effectively final (0) | 2022.04.18 |