5

私はSpring MVC 3を使用しています。私がやろうとしているのは、投稿リクエストを含むフォームを送信し、コントローラーの投稿リクエストハンドラーをいくつかのページにリダイレクトすることだけです。しかし、それをしようとすると、次のエラーが発生します。

javax.servlet.ServletException: Circular view path [thanks.htm]: would dispatch back to the current handler URL [/wickedlysmart/thanks.htm] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

以下は私が使用しているコードです:

リクエスト ハンドラ:

@RequestMapping(method=RequestMethod.GET, value="thanks")
public ModelAndView thanks() {
    logger.debug("redirecting..");
    return new ModelAndView("thanks");
}
@RequestMapping(method = RequestMethod.POST, value="talk")
public String processContactForm(HttpServletRequest req) {      
    //...
    return "redirect:thanks";
}

Spring アプリケーション コンテキストでリゾルバーを表示します。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="" />
    <property name="suffix" value=".htm" />

</bean>

ここで何が起こっているのかよくわかりません。「リダイレクトしています..」がログに記録されているのを確認してから、このエラーが発生します。誰かがこの問題について私を助けてくれますか?

ありがとう。

4

1 に答える 1

1

以下は問題を解決しました:

@RequestMapping(method=RequestMethod.GET, value="captured")
public ModelAndView thanks() {
    logger.debug("redirecting..");
    return new ModelAndView("thanks");
}
@RequestMapping(method = RequestMethod.POST, value="talk")
public String processContactForm(HttpServletRequest req) {      
    //...
    return "redirect:captured";
}

ご覧のとおり、リダイレクトを「thanks」から「captured」に変更し、リダイレクト リクエスト ハンドラの「value」も「thanks」から「captured」に変更したところ、うまくいきました。ありがとう。

于 2012-05-17T20:00:22.617 に答える