springMVC不太注意的东西

写了很多程序,什么都记不住,每次都是看原来的,查百度。这公司能给你多少钱啊。想想心酸。这里讲一下springMVC中文件的上传,和当你使用modelAndView跳转发生的问题,还有 redirect 跳转的问题。

一、文件上传

文件上传,自己分析一下步骤背下来。

1.页面需要form 《method="post" enctype="multipart/form-data"》

2.后台需要MultipartFile 接受 @param(value=“”)可以设置名称

3.file.getOriginalFilename 是获得名称的好办法

4.创建文件 FIle obj = new File();

5.记得判断存不存在 if(!objFile.exists()){  objFile.mkdirs();  }

6.一个file.transferTo(obj) 搞定

原理一定想一想 都是 http 文件头,加上 io流

@RequestMapping("save.do")
	public ModelAndView save(Product p,@RequestParam(value="file")MultipartFile file,HttpServletRequest request){
		//目标文件带有.jpg后缀
		String oriName = file.getOriginalFilename();
		//uuid
		String name = MyUUID.getUUID();
		//拼接成新的名称
		String fileName = name+oriName.substring(oriName.lastIndexOf("."));
		//上传的物理位置
		String path = request.getSession().getServletContext().getRealPath("upload");
		//创建文件
		File objFile = new File(path,fileName);
		try {
			//如果不存在,就创建
			if(!objFile.exists()){  
				objFile.mkdirs();  
	        } 
			//io流写入
			file.transferTo(objFile);
			//以下保存路径到数据库
			p.setTop(fileName);
			service.save(p);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	
		return new ModelAndView("redirect:/productIns.jsp");
	}

附上源码。

二、方法返回视图问题

1.springMVC 到达对象上我们通常有几种办法。一种是modelAndView 。一种是返回string ;还有很多没怎么用

不知道你遇没遇到过
你请求的地址是 : a.do
返回的地址就是:a.jsp
你modelAndView 写的是(b.jsp)   这是因为你的包导错了。

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.portle.ModelAndView;


crtl+alt+o 坑死人啊


2.j2ee学过 ,两种返回的方法  forward 和 redirect 
注意:你在spring-servlet.xml 中配置的 前后缀。在 redirect中是不好使的。


3.还有一个问题
比如你请求  pro/a.do
返回后  pro/a.jsp
可是你想要  a.jsp 怎么办
很简单,绝对路径,相对路径问题。 在  modelAndView("/a.jsp")

注意“/”












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值