Мне нужно передать объект имени пользователя из фильтра в контроллер. Контроллер предназначен для этих двух параметров, но параметры не могут отфильтровывать сообщения.
Метод в фильтре:
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {
/*send object to controller*/
Username username = value;
response.sendRedirect("/create-bank-profile");
}
В контроллере:
@RequestMapping(value = "/create-bank-profile", method = RequestMethod.POST)
public ModelAndView register(
HttpSession session,
HttpServletRequest request,
@RequestParam(required = false, value = "bank-info-check", defaultValue = "false") Boolean isBankCustomer,
@RequestParam("accessKey") Long accessKey,
@RequestParam("secretKey") Long secretKey
) {
/* access the username object two fields: aceesskey and secretKey */
}
Я думаю, что я должен задать это значение.
Следующий прокомментированный код не работает.
//RequestDispatcher rd=request.getRequestDispatcher("./test1");
//rd.forward(request, response);
//chain.doFilter(request, response);
Затем я попробовал, как показано ниже. Он работает нормально. Попробуйте с этим. Он должен демонстративно работать.
Я проверил приведенный ниже код, используя сервлеты. Я добавляю как "./test1".
В случае вашего сценария вам не нужно указывать "./", вы можете просто сказать "требуемый URL",
request.setAttribute("anil", "anil123");
RequestDispatcher rd= ((HttpServletRequest)request).getRequestDispatcher("./test1");
rd.forward(request, response);
Ваш create-bank-profile
- это метод POST
и невозможно отправить запрос POST
с помощью response.sendRedirect()
.
Вероятно, вы могли бы проверить что-то из этих вариантов:
Использование RequestDispatcher
request.setAttribute("param", "param value");
RequestDispatcher dispatcher = servletContext().getRequestDispatcher(required_url);
Задайте требуемые параметры в запросе и используйте:
response.setStatus(307);
response.addHeader("Location", "required URL");
request.getRequestDispatcher("URL"). forward (запрос, ответ);