Osheep

时光不回头,当下最重要。

SpringMVC进行后台POST重定向

在Spring中,使用RedirectView进行POST重定向好像不会生效,但是这个需求又是很迫切

我们提供下一下做法,完全可以解决需求:

1、适当的封装个form请求方法

/**
	 * @Description: 后台进行POST请求(请写在代码执行结尾)
	 * @return void  返回类型
	 */
	public static void doBgPostReq(HttpServletResponse response,String postUrl,Map<String, ?> paramMap) throws IOException {
		response.setContentType( "text/html;charset=utf-8");   
	    PrintWriter out = response.getWriter();  
	    out.println("<form name='postSubmit' method='post' action='"+postUrl+"' >");  
	    for (String key : paramMap.keySet()) {
	    	out.println("<input type='hidden' name='"+key+"' value='" + paramMap.get(key)+ "'>");
		}
	    out.println("</form>");   
	    out.println("<script>");   
	    out.println("  document.postSubmit.submit()");   
	    out.println("</script>");   
	}

2、在控制层进行调用

/**
	 * 进行请求
	 * @param request
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping(value = "doPostRedirectView.do", method = RequestMethod.GET)
	@ResponseBody
	public void doPostRedirectView(HttpServletRequest request,HttpServletResponse response,ModelMap map) throws IOException {
		logger.debug("-----进入了doPostRedirectView----");
		map.put("aaa", "aaaa");
		HttpUtils.doBgPostReq(response, "doPostReq.do", map);
	}

以上就能轻松完成这个需求,亲测可用哦!

点赞