<%@ page import="com.tridion.linking.*, java.util.*, java.net.*" %> <% boolean bLink = false; String sPageID = (request.getParameter("pageID") != null)? (String)request.getParameter("pageID") : "tcm:0-0-0"; String sCompID = (request.getParameter("compID") != null)? (String)request.getParameter("compID") : ""; String sCTID = (request.getParameter("ctID") != null)? (String)request.getParameter("ctID") : "tcm:0-0-0"; if ((sPageID.length() != 0) && (sCompID.length() != 0) && (sCTID.length() != 0)) { ComponentLink componentLink; if (sPageID.equals("tcm:0-0-0")) { componentLink = new ComponentLink("tcm:0-" + sCompID.substring(sCompID.indexOf(':')+1, sCompID.indexOf('-')) + "-1"); } else { componentLink = new ComponentLink("tcm:0-" + sPageID.substring(sPageID.indexOf(':')+1, sPageID.indexOf('-')) + "-1"); } Link destLink = componentLink.getLink(sPageID, sCompID, sCTID, "", "", false, false); if (destLink != null) { String destURL = destLink.getURL(); if (destURL != null) { String queryStr = ""; Enumeration paramNames = request.getParameterNames(); while(paramNames.hasMoreElements()){ String paramName = (String)paramNames.nextElement(); if(paramName.startsWith("fwd_")){ queryStr += "&" + paramName.substring(4) + "=" + URLEncoder.encode(request.getParameter(paramName), "ISO-8859-1").replaceAll("\\+", "%20"); } } queryStr = (queryStr.length() > 0 && destURL.indexOf("?") == -1) ? "?" + queryStr.substring(1) : queryStr; bLink = true; response.sendRedirect(destURL + queryStr); } } } if (! bLink) { response.sendRedirect("/"); } %>