RunTurtle

Spring 개발 과정중 오류( view.jsp에서의 간단한 고침) 본문

개발중 오류 정리

Spring 개발 과정중 오류( view.jsp에서의 간단한 고침)

RunTurtle 2024. 1. 10. 02:26

물론 오류 잡느라 너무 행복했네요 ㅎㅎ 성장과정의 발판!

나같은 사람들 있으면 안되니까 
오류 해결한 것 블로그에 남깁니당

<c:forEach items="${reply}" var="reply" >
    <div class="list-group-item">
        <h5 class="mb-1">${reply.writer} / ${reply.regDate}</h5>
        <p class="mb-1">${reply.content}</p>
    </div>

jstl을 사용해서 반복문으로 reply에 데이터를 받아와서 뿌려주는 간단한 코드였는데,

HTTP 상태 500 – 내부 서버 오류
타입 예외 보고

메시지 행 [79]에서 [/WEB-INF/views/board/view.jsp]을(를) 처리하는 중 예외 발생

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.apache.jasper.JasperException: 행 [79]에서 [/WEB-INF/views/board/view.jsp]을(를) 처리하는 중 예외 발생

77: 			<c:forEach items="${reply}" var="reply" >
78: 				<div class="list-group-item">
79: 					<h5 class="mb-1">${reply.writer} / ${reply.regDate}</h5>
80: 					<p class="mb-1">${reply.content}</p>
81: 				</div>
82: 			</c:forEach>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:502)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
근본 원인 (root cause)

java.lang.NumberFormatException: For input string: "writer"
	java.lang.NumberFormatException.forInputString(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)
	javax.el.ListELResolver.coerce(ListELResolver.java:144)
	javax.el.ListELResolver.getValue(ListELResolver.java:64)
	org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:124)
	org.apache.el.parser.AstValue.getValue(AstValue.java:168)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:690)
	org.apache.jsp.WEB_002dINF.views.board.view_jsp._jspService(view_jsp.java:253)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:502)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

오류 메시지를 살펴보면 'java.lang.NumberFormatException'이라는 예외가 나타나는데, 

이는 'writer'라는 문자열을 정수로 변환하려고 시도하다가 발생한 문제입니다. 

원인은 JSTL 라이브러리 선언이 빠진 것과 포맷팅을 담당하는 부분의 선언이 누락된 것이었습니다.


<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


넣어주고 실행하니 아주 이쁘게 실행이 잘들어갔다. ⚔⚔