CustomBrowserUrl.jsp
2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<%@page import="java.net.URLEncoder"%>
<%@page import="weaver.hrm.User"%>
<%@page import="weaver.hrm.HrmUserVarify"%>
<%@page import="weaver.general.Util"%>
<%@ page import="sun.misc.BASE64Decoder" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.formmode.browser.FormModeBrowserUtil" %>
<%@ page import="weaver.formmode.virtualform.VirtualFormHandler" %>
<%
User user = HrmUserVarify.getUser(request, response);
String showname = Util.null2String(request.getParameter("showname"));
String billid = Util.null2String(request.getParameter("billid"));
String linkUrl = Util.null2String(request.getParameter("customurl"));
RecordSet rs = new RecordSet();
BASE64Decoder decoder = new BASE64Decoder();
try {
linkUrl = new String(decoder.decodeBuffer(linkUrl),"UTF-8").trim();
} catch (Exception e) {
rs.writeLog(e);
}
FormModeBrowserUtil browserUtil = new FormModeBrowserUtil();
String formid = browserUtil.getFormIdByShowName(showname);
boolean isVirtualForm = VirtualFormHandler.isVirtualForm(formid);
linkUrl = browserUtil.getLinkUrl(user,linkUrl);
String nowbillid = URLEncoder.encode(billid, "UTF-8");//billid可能为中文
linkUrl = linkUrl.replace("$billid$",nowbillid);
if(linkUrl.indexOf("?billid=&")>-1){
linkUrl = linkUrl.replace("?billid=&","?billid="+nowbillid+"&");
}
if(linkUrl.indexOf("&billid=&")>-1){
linkUrl = linkUrl.replace("&billid=&","&billid="+nowbillid+"&");
}
if(linkUrl.endsWith("&billid=")){
linkUrl = linkUrl.substring(0,linkUrl.lastIndexOf("&billid="))+"&billid="+nowbillid;
}
//linkUrl = linkUrl.toLowerCase();//表单字段不区分大小写,但是formId和modeId和其他参数可能是大写
if(!isVirtualForm){//虚拟表单为浏览不支持linkURL点击
linkUrl = browserUtil.getLinkUrl(showname,billid,linkUrl);
} else {
linkUrl = browserUtil.getLinkUrlVirtual(showname,billid,linkUrl);
}
response.setContentType("text/html;charset=gbk");
response.sendRedirect(linkUrl);
%>