如何使用Apache commons获取表单单独传回的数据?(需求在注释)
private void addBook(HttpServletRequest request, HttpServletResponse response){ book = new Book(); FileItemFactory factory = new DiskFileItemFactory(); /** *需求是获取书本名称和价格 通过mybatis查询获取书本是否唯一(返回书本对象可能是空值也可能是查询到) * 这里希望先把书名和价格抓取出来,通过filItem上面方法可以实现呢? */ ServletFileUpload sf = new ServletFileUpload(factory); try { List<FileItem> formData = sf.parseRequest(request); for(FileItem fileItem:formData){ if(fileItem.isFormField()){ System.out.println("common files"+ fileItem.getFieldName()+":"+ fileItem.getString("UTF-8")); switch (fileItem.getFieldName()){ case "name": book.setName(fileItem.getString("UTF-8")); break; case "categoryId": book.setCategoryId(Long.valueOf(fileItem.getString("UTF-8"))); break; case "level": book.setLevel(Integer.valueOf(fileItem.getString("UTF-8"))); break; case "price": book.setPrice(Integer.valueOf(fileItem.getString("UTF-8"))); break; } }else{ System.out.println("files options :"+fileItem.getFieldName()); String imgPath = request.getServletContext().getRealPath("/img"); System.out.println(imgPath); String fileName = UUID.randomUUID().toString(); String suffix = fileItem.getName().substring(fileItem.getName().lastIndexOf(".")); System.out.println(imgPath); System.out.println(fileName); fileItem.write(new File(imgPath,fileName+suffix)); book.setImgPath("/img/"+fileName+suffix); } } bookService.insert(book); response.sendRedirect("/admin/book/list"); } catch (FileUploadException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
21
收起
正在回答 回答被采纳积分+1
4回答
狂野男孩_程序猴
2022-06-25 13:11:18
java工程师2020版
- 参与学习 人
- 提交作业 9397 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星