JSTL

[jstl] var값을 받아왔는데 NumberFormat 오류가 나는 경우

반응형

jstl <c:set>태그로 var값을 세팅했는데 자꾸만 NumberFormatException이 나는 경우, 원인은 세팅된 값이 String이기 때문이다.

심각: 서블릿 [jsp]을(를) 위한 Servlet.service() 호출이 예외를 발생시켰습니다.
java.lang.NumberFormatException: For input string: "cmtCnt"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.valueOf(Unknown Source)
	at org.apache.jasper.compiler.JspUtil.coerceToInt(JspUtil.java:561)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.convertString(Generator.java:3325)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:3128)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3233)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2420)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1910)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2465)
	at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:643)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Generator.generate(Generator.java:3673)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:257)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
	at com.controller.DispatcherServlet.requestPro(DispatcherServlet.java:122)
	at com.controller.DispatcherServlet.doGet(DispatcherServlet.java:63)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:880)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1601)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)

org.apache.jasper.JasperException: org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:423)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
	at com.controller.DispatcherServlet.requestPro(DispatcherServlet.java:122)
	at com.controller.DispatcherServlet.doGet(DispatcherServlet.java:63)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:880)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1601)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:621)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
	... 38 more
Caused by: java.lang.NumberFormatException: For input string: "cmtCnt"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.valueOf(Unknown Source)
	at org.apache.jasper.compiler.JspUtil.coerceToInt(JspUtil.java:561)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.convertString(Generator.java:3325)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:3128)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3233)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2420)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1910)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1926)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2465)
	at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:643)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Generator.generate(Generator.java:3673)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:257)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
	... 39 more

String타입인 var을 숫자 타입으로 바꿔주면 된다.

<c:set var="listSize" value="${fn:length(list}"/>
<fmt:parseNumber var="숫자타입 변수의 새 이름" type="number" value="${listSize}/>
728x90
반응형

'JSTL' 카테고리의 다른 글

[jstl] c:url 태그, 파일의 절대경로/상대경로  (0) 2021.01.08