重定向的传值问题
作业中当添加完图书点击保存的时候跳转到该分类下图书列表界面,我在Controller中的add方法中使用重定向response.sendRedirect("list.do?categoryId="); 请问老师这里的categoryId的值应该怎么获取?
public void add(HttpServletRequest request,HttpServletResponse response) throws FileUploadException, IOException {
Book book = new Book();
List<Book> books = new ArrayList<>();
//创建一个磁盘文件项工厂对象
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
//创建一个核心解析类
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
//解析request请求,返回List集合,List集合中存放FileItem对象
List<FileItem> list = servletFileUpload.parseRequest(request);
//遍历集合,获得每个FileItem,判断是表单项还是文件上传项
for(FileItem fileItem:list){
if(fileItem.isFormField()){
//表单项
if(fileItem.getFieldName().equals("categoryId")){
book.setCategoryId(Integer.parseInt(fileItem.getString("UTF-8")));
}
if(fileItem.getFieldName().equals("name")){
book.setName(fileItem.getString("UTF-8"));
}
if(fileItem.getFieldName().equals("level")){
book.setLevel(Integer.parseInt(fileItem.getString("UTF-8")));
}
if(fileItem.getFieldName().equals("price")){
book.setPrice(Integer.parseInt(fileItem.getString("UTF-8")));
}
if(fileItem.getFieldName().equals("imgPath")&&book.getImgPath() != null){
book.setImgPath(fileItem.getString("UTF-8"));
}
}else {
//文件上传项
if(fileItem.getFieldName().equals("smallImg")){
String rootPath = request.getServletContext().getRealPath("/");
String path = fileItem.getName();
String type = ".jpg";
if(path.indexOf(".") != -1){
type = path.substring(path.lastIndexOf("."));
}
path = "/download/images/"+System.currentTimeMillis()+type;
try {
fileItem.write(new File(rootPath+path));
book.setImgPath(path);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
books.add(book);
//调用Service
bookService.add(books);
//重定向到界面
response.sendRedirect("list.do?categoryId=");
}2
收起
正在回答 回答被采纳积分+1
1回答
chrismorgen
2019-02-28 14:12:36
你好同学,如果是变量的话没办法通过重定向的url进行传参的,可以将变量参数放到session中,然后在页面获取session中categoryId值,不过带参的请求推荐同学使用request转发哦,祝学习愉快~
SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星