2014-11-05 108 views
1

我想在上傳後重定向,並且希望重定向「文件」頁面。但提交成功後,在瀏覽器中的網址不重定向,我也使用螢火蟲來檢查是否有任何重定向,但沒有發生。 我將「重定向:/文件」更改爲「重定向:/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你告訴spring,這個控制器沒有返回視圖名稱。即你必須注意自己重定向,通過注入HttpServletResponse

+0

請你詳細說明一下,因爲我面臨這個問題,我沒有@ResponseBody在我的控制器中 – Noris 2016-06-23 22:29:17