我有一個simpleformController
需要處理請求get和post兩者。雖然獲取用戶需要被重定向到登錄屏幕,如果使用handlerequest
但是onSubmit
在發佈頁面時沒有被調用,那麼它工作正常?任何想法爲什麼?在SimpleformController上重定向
我曾試圖改變handlerequest
到private void
方法displayForm
並稱之爲從formBackingObject
方法而獲得,並根據需要還正確調用onSubmit
方法,工作正常。
但唯一的問題是在調用displayForm
一個私人無效的方法,我無法重定向頁面登錄爲formBackingObject
方法不具有效應初探對象,也沒有我可以從private
方法displayForm
爲formBackingObject
回報Object
使用return ModelView
。
@Override
protected Object formBackingObject(HttpServletRequest request) throws Exception {
if (logger.isDebugEnabled()) {
logger.debug("In formBackingObject()... ");
}
Object obj = request.getSession().getAttribute(CURRENT_FORM);
if (obj != null) {
if (logger.isDebugEnabled()){
logger.debug("update profile details form already exist, returning...");
}
return obj;
}
MyForm Form = new MyForm();
request.getSession().setAttribute(CURRENT_FORM, Form);
displayForm(request);
return Form;
}
原始的方法:不允許職位要由處理onSubmit
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
mv = new ModelAndView(new RedirectView(request.getContextPath() + "login.htm"));
RequestCache requestCache = new HttpSessionRequestCache();
requestCache.saveRequest(request, response);
mv.addObject("c_name",getPManager().getCName());
request.getSession().setAttribute("login_from_pac","yes");
return mv;
}
的新方法:要加載的形式,但用戶應強制登錄(重定向到登錄如果登錄正確的用戶可以請參閱此表格)。從formBackingObject
方法調用此方法來加載表單,但沒有響應對象重定向到登錄頁面。以下方法不起作用
private void displayForm(HttpServletRequest request) throws Exception {
HttpServletResponse response = null; -->
ModelAndView mav = null;
mav=new ModelAndView(new RedirectView(request.getContextPath() + "login.htm"));
RequestCache requestCache = new HttpSessionRequestCache();
requestCache.saveRequest(request, response);
//mav.addObject("c_name",getPManager().getCName());
request.getSession().setAttribute("c_name", getPManager().getCName());
request.getSession().setAttribute("login_from_pac","yes");
//return mav;
}