SpringMvc返回form表单提交

2019-07-24 10:32:15 浏览数 (1)

前言:在项目中需要后台处理完数据之后post 表单提交跳转到对方的前台页面,不管是银联网银支付还是第三方网银支付。这个时候就需要使用ResponseBody方法模拟form表单提交。

代码:

代码语言:javascript复制
    /**
	 * 网银支付
	 */
	@RequestMapping("/pay")
	@ResponseBody
	public String  doPay(){
		Map<String,String> map=new HashMap<String,String>();
		map.put("name","name");
		StringBuffer send = new StringBuffer();
		send.append("<html><head><meta http-equiv="content-type" content="text/html;
                charset=UTF-8"/><title> </title></head><body>");
                send.append("<form name="AutoSubmitForm" action="").append(url).append("" method="post" >");
		send.append(FormUtil.MaptoInput(map));
		send.append("</form>");
		send.append("<script type="text/javascript" >");
		send.append("document.AutoSubmitForm.submit();");
		send.append("</script>");
		send.append("</body></html>");
		return send.toString();
	}

formUtil工具类

代码语言:javascript复制
/**
     *将MAP拼接成input标签
     * @param map
     * @return
     */
    public static String MaptoInput(Map<String,String> map){
        StringBuffer stringBuffer=new StringBuffer();
        for (String key : map.keySet()) {
            String value =  map.get(key);
            stringBuffer.append(toInput(key, value));
        }
        return stringBuffer.toString();
    }
 
    /**
     * 转换为表单隐藏input域
     *
     * @param name
     * @param value
     * @return
     */
    public static String toInput(String name, String value) {
        return new StringBuffer("<input type="hidden" name="").append(name).append("" value="").append(value).append("" />").toString();
    }

0 人点赞