春3

2011-01-03 11 views
2

でExceptionHandling私はこのコントローラを持っている:春3

@RequestMapping(value = "*.xls", method = RequestMethod.GET) 
public String excel(Model model) { 

    return "excel"; 

エクセルwiewは、実際にこの方法での方法はExcelシートに内容を書いて、彼らができると呼ばれる

protected void buildExcelDocument(Map<String, Object> map, WritableWorkbook ww, HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception { 

Class.writecontent 
Class.writeMoreContent 

を構築しているExcelViewerを開き、例えばbiffExceptionをスローする。例外が発生したときに特定のエラーページを表示するにはどうすればよいですか?

私はこの

@Controller 
public class ExcelController 
{ 


    @ExceptionHandler(BiffException.class) 
    public String handleException(BiffException ex) { 

    return "fail"; 
    } 


    @RequestMapping(value = "*.xls", method = RequestMethod.GET) 
    public String excel(Model model) { 

     return "excel"; 
    } 

    } 

を試してみました。しかし、私は、例外についてのサーバーのエラーメッセージが出ています。たぶん、Beanの定義がありませんか?

答えて

2

@ExceptionHandler - 注釈付きメソッドは、同じクラスのハンドラメソッドによってスローされた例外のみを処理します。一方、あなたの例外はViewrenderメソッド内からスローされています。その時点でコントローラ/ハンドラレイヤが残っています。

サーブレットAPIで確実に動作させることが難しいため、ビューレイヤーからの例外処理はSpringではうまく処理されないため、ExcelViewのサブクラスを作成してその例外を処理することをお勧めします。

関連する問題