核心控制器method.invoke(object,request,response);出错
来源:2-5 核心控制器
webyy1139677
2019-07-19 14:03:19
还是核心控制器出错
try { Class cla = Class.forName(className); Object object = cla.newInstance(); Method method = cla.getMethod(methodName,HttpServletRequest.class, HttpServletResponse.class); method.invoke(object,request,response);
method.invoke(object,request,response); 提示是这句出错,用debug跟踪后发现,是运行到BookController类下面的list方法里的if(pageNum==null) pageNum="1";这句以后就跳出错误了,可是这句话看不出什么问题啊!?而且方法里的println语句执行了也没看到控制台上有输出?这是怎么回事?
public void list(HttpServletRequest request,HttpServletResponse response){ System.out.println("book.list方法执行了~~~~~~~~~~"); String pageNum = request.getParameter("pageNum"); if(pageNum==null) pageNum="1"; PageHelper.startPage(Integer.parseInt(pageNum),10); // 先取分类 List<Category> categoryList=categoryBiz.getAll(); request.setAttribute("caList",categoryList); List<Book> list =bookBiz.getAll(); PageInfo pageInfo = PageInfo.of(list); request.setAttribute("pageInfo",pageInfo); try { request.getRequestDispatcher("/WEB-INF/pages/admin/category.jsp").forward(request, response); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
出错信息:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.webyy.book.global.GlobalController.service(GlobalController.java:59)
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:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.webyy.book.global.EncodingFilter.doFilter(EncodingFilter.java:16)
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:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at com.webyy.book.controller.BookController.list(BookController.java:27)
... 30 more
1回答
同学你好,
是指要转换成数字的参数是null,所以数字转换异常。
建议同学把pageNum="1"; 这句话用{ } 括起来试试。
if(pageNum==null){ pageNum="1"; } 并且在调用Integer.parseInt(pageNum)之前再打印一下pageNum试试。
同学是否是debug的时候控制台没有输出呢?按上边的修改后,如果不用debug,正常运行模式下是否可以呢?
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题