/** * 准备中间页面所需参数 * add by linyan 2014-9-22 * @param url * @param params * @param charset * @return */ public static String[] operateParameter(String url,Map<String, String> params,String charset){ String[] ret=new String[2]; if(url!=null&&!"".equals(url)){ if(charset!=null&&!"".equals(charset)){ StringBuffer sb=new StringBuffer(); String parameterUtil=getParams(params,charset); sb.append("<html>"); sb.append("<head>"); sb.append("<script type=\"text/javascript\">"); sb.append("function redirectUrl() {"); sb.append("document.form0.submit();"); sb.append("}"); sb.append("</script>"); sb.append("</head>"); sb.append("<body onload=\"redirectUrl()\">"); sb.append("<form name=\"form0\" action=\""+url+"\" method=\"post\">"); if(parameterUtil!=null){ sb.append(parameterUtil); } sb.append("</form>"); sb.append("</body>"); sb.append("</html>"); ret[0]=ThirdPayConstants.RECOD_SUCCESS; ret[1]=sb.toString(); System.out.println("报文===="+sb.toString()); //把当前拼接的html参数通过response写到当前页面 完成自动提交功能 reponseWrite(sb.toString(),charset); }else{ ret[0]=ThirdPayConstants.RECOD_FAILD; ret[1]="form表单编码方式不存在"; } }else{ ret[0]=ThirdPayConstants.RECOD_FAILD; ret[1]="url不存在"; } return ret; } |
/** * 获取中间页面的form表单参数 * @param params * @return */ private static String getParams(Map<String, String> params,String charset) { // TODO Auto-generated method stub String htmlParamss=null; try{ if(params!=null){ StringBuffer sb=new StringBuffer(); Iterator iter = params.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); sb.append("<input type=\"hidden\" name='"+key.toString()+"\' value='"+val.toString()+"' />"); } htmlParamss=sb.toString(); } }catch(Exception e){ e.printStackTrace(); }
return htmlParamss; } |
/** * 使用response将html拼接页面写到当前浏览器端完成自动提交功能 * @param htmlParamss * @param charset */ public static void reponseWrite(String htmlParamss,String charset) { try { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html; charset=utf-8"); PrintWriter pw; pw = response.getWriter(); pw.write(htmlParamss) ; pw.flush() ; pw.close() ; } catch (IOException e) { e.printStackTrace();
}
}
|