Spring MVC 3を使用していて、次のコントローラーがあります
@RequestMapping(value="FileUploadForm",method=RequestMethod.GET)
public String showForm(ModelMap model){
UploadForm form = new UploadForm();
model.addAttribute("FORM", form);
return "FileUploadForm";
}
@RequestMapping(value="FileUploadForm",method=RequestMethod.POST)
public ModelAndView processForm(@ModelAttribute(value="FORM") UploadForm form,BindingResult result){
if(!result.hasErrors()){
FileOutputStream outputStream = null;
String filePath = System.getProperty("java.io.tmpdir") + "/" + form.getFile().getOriginalFilename();
try {
outputStream = new FileOutputStream(new File(filePath));
outputStream.write(form.getFile().getFileItem().get());
outputStream.close();
System.out.println(form.getName());
return new ModelAndView(new RedirectView("success?Filepath="+filePath, true, true, false));
} catch (Exception e) {
System.out.println("Error while saving file");
return new ModelAndView("FileUploadForm");
}
}else{
return new ModelAndView("FileUploadForm");
}
}
このコントローラーはファイルパスを取得し、ブラストを実行するために使用します
@RequestMapping(value="success")
public String blasta(@ModelAttribute("Filepath") String filepath, Model model){
Blast sb = new Blast("somepath");
String[] blastIt = sb.blast("somepath", filepath);
String newLine = System.getProperty("line.separator");
ArrayList<Object> result = new ArrayList<>();
for (int i = 5; i < blastIt.length; i++) {
if(blastIt[i].startsWith("Lambda")){
break;
} else {
seila.add(blastIt[i]);
System.out.println(blastIt[i]);
}
model.addAttribute("RESULT", result);
}
File f1 = new File(filepath);
f1.delete();
return "success";
}
すべて正常に動作しますが、URLにファイルパスが含まれています。
http://localhost:8081/Ambase/success?Filepath=filePath
そして、可能であればこの方法が欲しい
http://localhost:8081/Ambase/success