ページがありstart.jsp
ます。その中で、jQuery クリック ハンドラーを定義します。
$(document).ready(function() {
$("#myButton").click(function() {
// Injected from a Spring MVC controller returning a ModelAndView with
// modelAndView.addObject("fizz", myFizz);
var fizz = "${fizz}";
// Synchronous HTTP Get to invoke page redirect.
$.get(
"/myWidgets",
{
"fizz": fizz
},
function(data) {
// ???
}
);
});
});
次に、でリッスンしているコントローラーで/myWidgets
:
@RequestMapping(value = "/myWidgets.html", method = RequestMethod.GET)
public ModelAndView reloadAllTimeslots(@RequestParam("fizz") String fizz) {
ModelAndView mav = new ModelAndView();
// Should redirect the user to Oranges.jsp.
mav.setViewName("fruits/Oranges");
fruitDao.updateFruits(fizz);
logger.info("This prints to my log file perfectly fine, so I know this handler gets invoked.");
return mav;
}
ただし、start.jsp
ページ上で をクリックmyButton
しても、ページは にリダイレクトされませんOranges.jsp
。ただし、コントローラーの logger ステートメント (上記) はサーバー ログに出力されます。したがって、コードが 99% 機能していることはわかっていますが、必要なユーザー エクスペリエンスが得られていません。ここにリダイレクトされない理由を知っている人はいますか?
更新:
私が使用しているビューリゾルバー:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>