在JSP页面中如何将String型转换为Int型..

时间:2022-11-11 22:07:19
String note_id = request.getParameter("note_id");//输出为 '29'

int i = new Integer.parseInt(request.getParameter("note_id"));
out.println(i);

int i = new Integer(note_id).intValue();
out.println(i);

均报错:如下


Internal Servlet Error:

javax.servlet.ServletException: '31'
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:459)
at _0002fnote_0005fcontent_0002ejspnote_0005fcontent_jsp_55._jspService(_0002fnote_0005fcontent_0002ejspnote_0005fcontent_jsp_55.java:179)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)

Root cause: 
java.lang.NumberFormatException: '31'
at java.lang.Integer.parseInt(Integer.java:405)
at java.lang.Integer.parseInt(Integer.java:454)
at _0002fnote_0005fcontent_0002ejspnote_0005fcontent_jsp_55._jspService(_0002fnote_0005fcontent_0002ejspnote_0005fcontent_jsp_55.java:137)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)


12 个解决方案

#1


是不是还要在JSP页面中加载某个类.???

#2



int i = Integer.parseInt(request.getParameter("note_id"));
out.println(i);试试

#3


不行.始终是这个错误
java.lang.NumberFormatException: '29'
at java.lang.Integer.parseInt(Integer.java:405)
at java.lang.Integer.parseInt(Integer.java:454)

#4


你request得到的值可能是NULL值或空值,你判断下再转换,应给没问题的。

#5


得到的是'29'??
还是29??
如果是'29'那当然转换不了了。

#6


那是你request.getParameter("note_id")格式不对,在转换时出现错误,你看看它的值。

#7


值是 '29' 
那要怎么才能变成int值呢??  快??

#8


捕捉以下异常
int i = 0;
try
{
  i = Integer.parseInt(request.getParameter("note_id"));
}
catch(Exception e)
{
  out.print(e.toString());
}

#9


out.println(Integer.parseInt(request.getParameter("note_id")));

这样就可以了!

#10


异常结果: java.lang.NumberFormatException: '34' 

是不是此值是一个Char型..不能转换呀?

char 和int型不是不用转换吗?

#11


你确定你得到的值是带引号的??
如果是,那就要先把引号去掉再转换了。

#12


我想你这个参数是通过URL传递过来的吧!
你的URL形式是不是这样的:
.../.../...?note_id=‘XXX’
如果是的话就要将单引号去掉,变成以下形式
.../.../...?note_id=XXX

还有要注意note_id参数一定要传递值,如果为空也会出错!
所以
你可以写成以下形式:
int i = Integer.parseInt(((String)request.getParameter("note_id")).equals("")?"0":(String)request.getParameter("note_id"));

#1


是不是还要在JSP页面中加载某个类.???

#2



int i = Integer.parseInt(request.getParameter("note_id"));
out.println(i);试试

#3


不行.始终是这个错误
java.lang.NumberFormatException: '29'
at java.lang.Integer.parseInt(Integer.java:405)
at java.lang.Integer.parseInt(Integer.java:454)

#4


你request得到的值可能是NULL值或空值,你判断下再转换,应给没问题的。

#5


得到的是'29'??
还是29??
如果是'29'那当然转换不了了。

#6


那是你request.getParameter("note_id")格式不对,在转换时出现错误,你看看它的值。

#7


值是 '29' 
那要怎么才能变成int值呢??  快??

#8


捕捉以下异常
int i = 0;
try
{
  i = Integer.parseInt(request.getParameter("note_id"));
}
catch(Exception e)
{
  out.print(e.toString());
}

#9


out.println(Integer.parseInt(request.getParameter("note_id")));

这样就可以了!

#10


异常结果: java.lang.NumberFormatException: '34' 

是不是此值是一个Char型..不能转换呀?

char 和int型不是不用转换吗?

#11


你确定你得到的值是带引号的??
如果是,那就要先把引号去掉再转换了。

#12


我想你这个参数是通过URL传递过来的吧!
你的URL形式是不是这样的:
.../.../...?note_id=‘XXX’
如果是的话就要将单引号去掉,变成以下形式
.../.../...?note_id=XXX

还有要注意note_id参数一定要传递值,如果为空也会出错!
所以
你可以写成以下形式:
int i = Integer.parseInt(((String)request.getParameter("note_id")).equals("")?"0":(String)request.getParameter("note_id"));