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";
}