У меня есть simpleformController
, который должен обработать запрос get и опубликовать оба.В то время как получает пользователь должен быть перенаправлен на экран входа в систему, который прекрасно работает, если используется handlerequest
, но onSubmit
не вызывается при публикации страницы ??Любая идея, почему?
Я попытался изменить handlerequest
на private void
метод displayForm
и вызвал его из метода formBackingObject
, который прекрасно работает при получении, а также корректно вызывает метод onSubmit
кактребуется.
Но единственная проблема заключается в вызове displayForm
закрытого метода void. Я не могу перенаправить страницу для входа в систему, так как formBackingObject
метод не имеет объекта ответа, и я не могу использовать return ModelView
из private
method displayForm
as formBackingObject
возвращает Object
.
@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;
}