SpringMVC(四)アップロードファイル、jsonデータインタラクション
5682 ワード
ファイルのアップロード
*tomcatでの仮想ディレクトリの構成
serverを変更します.xml、に追加
これにより、http://localhost:8080/picディスクの下にあるファイルへのアクセス
eclipseでの設定
依存jar
SpringMVC.xmlでのプロファイルアップロード解析器
jspページの変更
enctypeはmultipart/form-dataに変更する必要があります
コントロールメソッド
ファイルパスにアクセスできない例外
親ディレクトリが存在しないのでfileを付ける.getParentFile().mkdirs()親ディレクトリ解決の作成
ファイルを保存するパスの説明
1.直接webRootの下でuploadフォルダを作成し、アップロードファイルをここに置いて、ブラウザで直接アクセスできるので、ここに保存するのは安全です
http://localhost:8081/goldSpringDemo/upload/0ea8aa64-76c6-49bf-9ecd-3a56c9fa87ed.xls
2.webRootの下のWEB-INFの下でuploadフォルダを作成し、アップロードファイルをここに置くと、ブラウザが直接アクセスできないので、ここは安全です
ああ、この例ではこのような
マルチファイルアップロード
jspページの変更
コントロールメソッドのパラメータを変更し、遍歴した後、単一ファイルの処理フローで処理します.
Jsonデータインタラクション
@RequestBody注記要求されたjsonデータをjavaオブジェクトに変換してバインド
@ResponseBodyは、controllerメソッドで返されたjavaオブジェクトをjson応答クライアントに変換します.
JArサポート
JSONコンバータ
xmlで注記駆動を使用する場合、json変換器を構成する必要はありません.注記駆動を適用しない場合は構成が必要です.
テストの開始:
jspページ:
コントロールメソッド
*tomcatでの仮想ディレクトリの構成
serverを変更します.xml、に追加
これにより、http://localhost:8080/picディスクの下にあるファイルへのアクセス
eclipseでの設定
依存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();
}