2014-11-05 3 views
1

업로드 후 리디렉션하고 "파일"페이지를 리디렉션하고 싶습니다. 하지만 성공적으로 제출 한 후, 브라우저의 URL은 리다이렉트하지 않습니다. 또한 리디렉션이 있는지 확인하기 위해 방화 녀 (firebug)를 사용합니다. "redirect :/files"를 "redirect : /files.jsp"로 변경하면 도움이되지 않습니다. 오류가 있습니까?springmvc에서 리디렉션이 작동하지 않는 이유

@Controller 
@RequestMapping({ "/files", "/files/" }) 
    public class FileAdminController { 

    @RequestMapping(value = { "/upload/index", "/upload", "/upload/" }, method = RequestMethod.GET) 
     public String showUplaod() { 
     return "upload"; 
    } 

    @RequestMapping(value = { "/index", "/index/", "/" }, method = RequestMethod.GET) 
    public String showFilePage() { 
     return "files"; 
    } 

    @RequestMapping(value = "/upload", method = RequestMethod.POST) 
    public @ResponseBody String handleFileUpload(
     @RequestParam("jarName") String jarName, 
     @RequestParam("manifestName") String manifestName, 
     @RequestParam("files") MultipartFile file) { 

     try { 

      File file1 = new File("c:/uploads/"); 

      file1.getParentFile().mkdirs(); 
      file1.createNewFile(); 
      BufferedOutputStream stream = new 
      BufferedOutputStream(
      new FileOutputStream(file1)); 

      stream.write(bytes); 
      stream.close(); 
      return "redirect:/files"; 
     } catch (Exception e) { 
      return "You failed to upload " + jarName + " => " + e.getMessage(); 
     } 


    } 
} 

답변

6

redirect:UrlBasedViewResolver에 의해 해결됩니다 뷰 이름입니다

여기 내 코드입니다. 그러나 @ResponseBody을 사용하면이 컨트롤러가 뷰 이름을 반환하지 않는다고 봄에 알릴 수 있습니다. 나는. HttpServletResponse을 삽입하여 리디렉션을 직접 처리해야합니다.

+0

내가이 문제에 직면하고 있기 때문에 제게 정교하게 설명해 주겠습니까? 제 컨트롤러에 @ResponseBody가 없습니다. – Noris