Spring 3.0.6 コントローラーでは、次のようなコントローラーで問題ないことがわかりました。
@Controller
@RequestMapping(value = "/dialog")
public class DialogController {
@RequestMapping(value = "/redirected.view")
public ModelAndView redirected() {
System.out.println( "DialogController.redirected()" );
final ModelAndView mav = new ModelAndView( "redirected" );
return mav;
}
@RequestMapping(value = "/form.view")
public Object form() {
System.out.println( "DialogController.form()" );
return createModel();
}
private ModelAndView createModel() {
final ModelAndView mav = new ModelAndView( "redirect:redirected.view" );
return mav;
}
}
...のObject
戻り値の型に注意してくださいform()
Spring のバージョンを 3.1.2 に変更すると、404 が返されます
WEB-INF/jsp/dialog/form.jsp
。
はい、viewResolver を使用しています
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
元のコードのメソッドはさらに複雑でした
@RequestMapping(value = "/search.form", method = RequestMethod.POST)
public Object submit( @Valid @ModelAttribute("sequentialSearch") final SequentialSearchData searchObject,
final BindingResult bindingResult, final Model model, final HttpSession session ) throws Exception {
...
}
おそらくそれがエラーが表示されない理由です...
orObject
を返したのでそこにありましたが、今は always を返しているので、戻り値の型を変更でき、機能します。String
ModelAndView
ModelAndView