SpringMVC(四)アップロードファイル、jsonデータインタラクション


ファイルのアップロード
*tomcatでの仮想ディレクトリの構成
serverを変更します.xml、に追加

これにより、http://localhost:8080/picディスクの下にあるファイルへのアクセス
eclipseでの設定
SpringMVC(四)上传文件、json数据交互_第1张图片
依存jar

SpringMVC.xmlでのプロファイルアップロード解析器


	
	

jspページの変更

enctypeはmultipart/form-dataに変更する必要があります
コントロールメソッド
@RequestMapping("/fileUpload.action")
	public String doFileUpload(@RequestParam(required = false) MultipartFile file,
			HttpServletRequest request
			) throws IllegalStateException, IOException{
		if(file==null){
			return "itemList";
		}
		String orginFileName = file.getOriginalFilename();
		String fileName = UUID.randomUUID()+""+orginFileName.substring(orginFileName.lastIndexOf("."));
		String path = request.getServletContext().getRealPath(File.separatorChar+"WEB-INF"+File.separatorChar+"upload");
		File file2 = new File(path, fileName);
		if(!file2.getParentFile().exists()){
			file2.getParentFile().mkdirs();
		}
		file.transferTo(file2);
		return "forward:/itemList.action";
	}

ファイルパスにアクセスできない例外
親ディレクトリが存在しないのでfileを付ける.getParentFile().mkdirs()親ディレクトリ解決の作成
ファイルを保存するパスの説明
1.直接webRootの下でuploadフォルダを作成し、アップロードファイルをここに置いて、ブラウザで直接アクセスできるので、ここに保存するのは安全です
http://localhost:8081/goldSpringDemo/upload/0ea8aa64-76c6-49bf-9ecd-3a56c9fa87ed.xls
2.webRootの下のWEB-INFの下でuploadフォルダを作成し、アップロードファイルをここに置くと、ブラウザが直接アクセスできないので、ここは安全です
ああ、この例ではこのような
マルチファイルアップロード
jspページの変更

コントロールメソッドのパラメータを変更し、遍歴した後、単一ファイルの処理フローで処理します.
@RequestMapping("/fileUploads.action")
	public String doFileUploads(@RequestParam(required = false) List files,
			HttpServletRequest request
			) throws IllegalStateException, IOException{
		if(files==null){
			return "itemList";
		}
		for(int i = 0;i

Jsonデータインタラクション
@RequestBody注記要求されたjsonデータをjavaオブジェクトに変換してバインド
@ResponseBodyは、controllerメソッドで返されたjavaオブジェクトをjson応答クライアントに変換します.
JArサポート

JSONコンバータ
xmlで注記駆動を使用する場合、json変換器を構成する必要はありません.注記駆動を適用しない場合は構成が必要です.

	
		
		
		
		
		
	

テストの開始:
jspページ:
	
	//live          DOM     ,jquery 1.7   on  
		$("#bt").live("click",function(){
			$.ajax({
				type:'GET',
				url:contentpath+'/item/json.action',
				data:$("#form1").serialize(),
				contentType:"application/x-www-form-urlencoded;charset=utf-8",
				dataType:'json',
				success:function(data){
					console.log(data);
				},
				error:function(){
					alert('       ,   !');
				}
				
			});		
		});
	
	

コントロールメソッド
@RequestMapping("/json.action")
	public @ResponseBody Item dojsonSupport(QueryVo qv){
		return qv.getItem();
	}