重定向后如何保持请求参数?

weixin_38049070 2019-09-12 03:02:08

我试图解决一个错误,当我发送一个空输入的窗体。 这是我梅索德: @RequestMapping(value = "/modifier.html", method = RequestMethod.POST) public String modifier(ModelMap map, @ModelAttribute("FormObject") FormObject formObject, BindingResult result, HttpServletRequest req) { formObject.setModif(true); String idParam = req.getParameter("idTypeOuverture"); if (result.hasErrors()) { return "redirect:/gestion.html?section=Configuration&panel=4&ouvrir=modifier"; } else { //Instructions } 当有错误(空输入)控制器重定向到这个链接,告诉用户纠正错误。问题是,当我检查参数,在这里,他们看起来是正确的(ID,姓名...),但在以下方法ID变为零:为什么参数ID redericting后改变 @Override public ModelAndView dispatcher(HttpServletRequest request, HttpServletResponse response) throws RorException { Map<String, Object> myModel = (Map<String, Object>) request.getAttribute(EnumParam.R_MY_MODEL.getKey()); Enumeration<?> keys = request.getParameterNames(); while (keys.hasMoreElements()) { String paramName = (String) keys.nextElement(); String value = request.getParameter(paramName); myModel.put(paramName, value); } GlobalSession globalSession = (GlobalSession) getApplicationContext().getBean(Utilities.GLOBALSESSION_BEAN_REF); myModel.put("module", globalSession.getModule().getKeyMessage()); String section = request.getParameter("section"); // This instruction returns null String idForm = request.getParameter("id"); id = Integer.parseInt(idForm); // This instruction returns NumberFormatException ObjectForm of = getForm(id); // ... } 好了,我不知道?你有什么主意吗?我尝试在第一个方法中重新设置参数,但仍然得到相同的NFE。 预先感谢您。 谢谢








...全文
423 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43262830 2019-11-06
  • 打赏
  • 举报
回复
引用
哈哈
weixin_38053335 2019-09-12
  • 打赏
  • 举报
回复

请求参数只针对一个请求。 你做了一个重定向,这意味着你做了另一个新的“请求”。 你应该把它添加到重定向: return "redirect:/gestion.html?section=Configuration&panel=4&ouvrir=modifier&idTypeOuverture="+idParam;
weixin_38064773 2019-09-12
  • 打赏
  • 举报
回复

虽然以前的答案被接受,我加入了这个答案只为您的信息。 您还可以使用RedirectAttributes与不FlashAttributes也 发行重定向之前,POST方法应采取RedirectAttributes作为参数 这些属性将作为请求参数传递 看看我的代码示例并查看其是否有帮助 方法1: @RequestMapping(value={"/requestInfo.htm},method=RequestMethod.POST) public String requestInfoPost1 (@ModelAttribute("requestInfoData") RequestInfoData requestInfoData, BindingResult result,RedirectAttributes redirectAttributes, SessionStatus status) { ....... redirectAttributes.addAttribute("name", requestInfoData.getName()); redirectAttributes.addAttribute("age", requestInfoData.getAge()); ..... return "redirect:requestInfoSuccessRedirect"; } @RequestMapping("requestInfoSuccessRedirect") public String requestInfoSuccessRedirect() { return "requestInfoSuccess"; } WAY 2: 无论数据是在闪存属性添加将在会议上添加 这将是会议只能做到重定向是成功 在重定向,数据从会话中检索并添加到模型新的请求。 只有在重定向成功后,数据被删除 @RequestMapping(value={"/requestInfo.htm",method=RequestMethod.POST) public String requestInfoPost(@ModelAttribute("requestInfoData") RequestInfoData requestInfoData,BindingResult result, RedirectAttributes redirectAttributes,SessionStatus status) { ....... redirectAttributes.addFlashAttribute("requestInfoData", requestInfoData); ........ return "redirect:requestInfoSuccessRedirect"; } @RequestMapping("requestInfoSuccessRedirect") public String requestInfoSuccessRedirect() { return "requestInfoSuccess"; }

430

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧