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")

注意“/”












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章