麻烦老师看一下错误出现再哪里了?

来源:3-5 商品管理上架

散落满天的回忆

2020-05-19 21:02:47

package com.imooc.book.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.imooc.book.biz.BookBiz;
import com.imooc.book.biz.BookImp;
import com.imooc.book.biz.CategoryBiz;
import com.imooc.book.biz.CategoryImp;
import com.imooc.book.entity.Book;
import com.imooc.book.entity.Category;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class BookController {
   private BookBiz bookBiz=new BookImp();
   private CategoryBiz categoryBiz=new CategoryImp();
   //  admin/Book/add.do
   public void toAdd(HttpServletRequest request, HttpServletResponse response){
        List<Category> list=categoryBiz.select();
        request.setAttribute("categorylist",list);
       try {
           request.getRequestDispatcher("/WEB-INF/page/admin/add_book.jsp").forward(request,response);
       } catch (ServletException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
   public void add(HttpServletRequest request, HttpServletResponse response) throws FileUploadException {
       System.out.println("i");
       List<Book> list= new ArrayList();
       Book book=null;
       FileItemFactory factory=new DiskFileItemFactory();
       ServletFileUpload upload=new ServletFileUpload(factory);
       List<FileItem> fileItemList=upload.parseRequest(request);
       int i=0;
       System.out.println(i);
       for(FileItem fileItem:fileItemList){
           if (fileItem.isFormField()){
              if (fileItem.getFieldName().equals("name")){
                  try {
                      book.setName(fileItem.getString("UTF-8"));
                  } catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  }
              }
               if (fileItem.getFieldName().equals("categoryId")){
                   try {
                       book.setCategoryId(Integer.parseInt(fileItem.getString("UTF-8")));
                   } catch (UnsupportedEncodingException e) {
                       e.printStackTrace();
                   }
               }
               if (fileItem.getFieldName().equals("level")){
                   try {
                       book.setLevel(Integer.parseInt(fileItem.getString("UTF-8")));
                   } catch (UnsupportedEncodingException e) {
                       e.printStackTrace();
                   }
               }
               if (fileItem.getFieldName().equals("price")){
                   try {
                       book.setPrice(Integer.parseInt(fileItem.getString("UTF-8")));
                   } catch (UnsupportedEncodingException e) {
                       e.printStackTrace();
                   }
               }

           }else{
                 if (fileItem.getFieldName().equals("smallImg")){
                     if (fileItem.getSize()<=100){
                        continue;
                     }
                     String  rootpath=request.getServletContext().getRealPath("/");
                     String path=fileItem.getName();
                     String type=".jpg";
                     if (path.indexOf(".")!=.1){
                         type.substring(path.lastIndexOf("."));
                     }
                     path="/download/images/"+System.currentTimeMillis()+type;
                     try {
                         fileItem.write(new File(rootpath+path));
                         book.setImgTath(path);
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 }
           }
           i++;
           if (i%5==0){
               book.setCreateTime(new Date());
               book.setUpdateTime(new Date());
               list.add(book);
           }
       }
       bookBiz.add(list);
       try {
           response.sendRedirect("list.do");
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
   //   admin/Book/list.do
   public void list(HttpServletRequest request, HttpServletResponse response){
       String  pageNum=request.getParameter("pageNum");
       if (pageNum==null){
           pageNum="1";
       }
       PageHelper.startPage(Integer.parseInt(pageNum),20);
     List<Book> list = bookBiz.select();
       PageInfo pageInfo=PageInfo.of(list);

     request.setAttribute("pageInfo",pageInfo);
       try {
           request.getRequestDispatcher("/WEB-INF/page/admin/book.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.imooc.book.controller.GlobalController.service(GlobalController.java:51)

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.imooc.book.global.EncodingFilter.doFilter(EncodingFilter.java:24)

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:528)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)

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:810)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException

at com.imooc.book.controller.BookController.add(BookController.java:55)

... 30 more


写回答

2回答

好帮手慕小脸

2020-05-20

同学你好,java.lang.NullPointerException---》空指针异常,出现原因:如果使用null调用方法,就会报出空指针异常。 同学可以根据报错的具体行数查看一下具体的报错位置,看是哪个数据为null导致的空指针异常:

http://img.mukewang.com/climg/5ec490180997ea8908090174.jpg

祝学习愉快~

0

散落满天的回忆

提问者

2020-05-20

老师是这几行代码出现错误了应该怎么改?

http://img.mukewang.com/climg/5ec496870978b6ac08740637.jpg

0

0 学习 · 8016 问题

查看课程