4

Spring MVC Restful は初めてです。ユーザーが検索する用語を送信できるフォーム ページにユーザーを転送する index.jsp があるとします。POST ハンドラー メソッドで用語をキャッチし、計算を行い、結果をリダイレクトして別のページ (/WEB-INF/jsp) で使用できるようにします。たとえば、結果に基づいてグラフを作成するとします。問題は、結果の収集と URL のリダイレクトを同時に行う方法です。以下のようなコントローラー:

@RequestMapping(value="/termForm", method = RequestMethod.GET)
public ModelAndView  setupForm() {
Term termClass = new Term();
return new ModelAndView("term", "command", termClass);
}
@RequestMapping(value="/getTerm", method=RequestMethod.POST)
public String getTerms(@ModelAttribute("term") Term term, BindingResult result)
{
    String label = term.getTerm();

    //doing some calculation to term here
    result = ....
    return "redirect:"+ "graphPage.jsp";
}

検索すると、Spring View Resolver はリダイレクトされた jsp をルート ディレクトリ以下でしか処理できないことがわかりました (index.jsp と同じ)。この場合、「結果」は「graphPage」で受け入れられないようです。次のように、XXX-servlet.xml に UrlBasedViewResolver も含めました。

   <bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

長い質問で申し訳ありませんが、これを行うためのヒントを教えてください。どうもありがとう。


私の質問には2つの部分があります。1 つは、POST メソッドを別のページ、graphPage.jsp にリダイレクトすることです。グラフに行くので、グラフを作成するには POST メソッドからのデータも必要です。これがもう一つの懸念事項です。それが明確であることを願っています。ハンドラーメソッドを追加することで、最初のものをすでに解決しました。以下を参照してください。しかし、結果をパッケージ化して Graph.jsp に渡すにはどうすればよいでしょうか。ありがとう

@RequestMapping(value="/graphPage", method=RequestMethod.GET)
public String showGraph()
{

    return "graphPage";
}
4

1 に答える 1

3

RedirectView文字列の代わりにを使用すると、リダイレクトをより適切に制御できます。この例を参照してください。

@Contoller
@RequestMapping("/your")
public class YourController


    @RequestMapping(value="/getTerm", method=RequestMethod.POST)
    public ModelAndView getTerms(@ModelAttribute("term") Term term, BindingResult result) {
        ...
        return new ModelAndView(new RedirectView("/your/other", true));
    }

    @RequestMapping(value="/other", method=RequestMethod.POST)
    public String otherMethod() {...}       
}

しかし、おそらくあなたは何か違うことを尋ねたので、質問を書き直してください。あなたの問題が何であるかを理解することは非常に困難です。/

ところで。「graphPage」を直接リクエストできることをテストします

于 2012-09-08T14:46:53.203 に答える