我發現,在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 {
...
}
,也許這就是爲什麼沒有顯示錯誤的原因...
我在那裏Object
,因爲我退回String
或ModelAndView
,現在我總是返回ModelAndView
,所以我可以改變返回類型和它的作品。
你是什麼意思「它不工作」?它是否發送狀態碼404,403,500或可能返回垃圾? – Xaerxess
日誌/控制檯中沒有錯誤。流程簡單地返回/停留在同一頁面上。我會添加一些信息,以問題... – Betlista
你可以顯示整個控制器代碼? – Xaerxess