4

私はSpring MVCが初めてです。例外をキャッチした後、error.jsp ページにリダイレクトして例外メッセージ (ex.getMessage()) を表示したいと考えています。プログラムで error.jsp にリダイレクトする必要があるため、Spring の Exception Handler を使用したくありません。

@RequestMapping(value = "http/exception", method = RequestMethod.GET)
public String exception2()
{
    try{
        generateException();
    }catch(IndexOutOfBoundsException e){
        handleException();
    }
    return "";
}

private void generateException(){
    throw new IndexOutOfBoundsException();      
}

private void handleException(){

    // what should go here to redirect the page to error.jsp
}
4

1 に答える 1

4

Stringメソッドから戻ってきた理由がわかりません。Spring MVC の標準は、Spring の例外ハンドラーを使用していない場合でも、 で注釈が付けられたメソッドが@RequestMappinga を返すことです。ModelAndView私の知る限り、ModelAndViewどこかを返さずにクライアントを error.jsp に送信することはできません。Spring コントローラーの基本的な考え方を理解するのに助けが必要な場合は、Spring MVC で単純な「Hello World」アプリケーションを作成する方法を示すこのチュートリアルを見つけました。単純な Spring コントローラーの良い例が含まれています。

メソッドで例外が発生した場合はエラー ページを返し、それ以外の場合は通常のページを返すようにする場合は、次のようにします。

@RequestMapping(value = "http/exception", method = RequestMethod.GET)
public ModelAndView exception2()
{
    ModelAndView modelAndview;
    try {
        generateException();
        modelAndView = new ModelAndView("success.jsp");
    } catch(IndexOutOfBoundsException e) {
        modelAndView = handleException();
    }
    return modelAndView;
}

private void generateException(){
    throw new IndexOutOfBoundsException();      
}

private ModelAndView handleException(){
     return new ModelAndView("error.jsp");
}
于 2012-07-05T23:15:43.420 に答える