[jboss-svn-commits] JBoss Portal SVN: r5595 - branches/JBoss_Portal_Branch_2_4/core/src/main/org/jboss/portal/core/command
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Nov 7 15:40:41 EST 2006
Author: roy.russo at jboss.com
Date: 2006-11-07 15:40:39 -0500 (Tue, 07 Nov 2006)
New Revision: 5595
Modified:
branches/JBoss_Portal_Branch_2_4/core/src/main/org/jboss/portal/core/command/MarkupCommand.java
Log:
JBPORTAL-1054 - fixed urls with unescaped amps
Modified: branches/JBoss_Portal_Branch_2_4/core/src/main/org/jboss/portal/core/command/MarkupCommand.java
===================================================================
--- branches/JBoss_Portal_Branch_2_4/core/src/main/org/jboss/portal/core/command/MarkupCommand.java 2006-11-07 19:36:16 UTC (rev 5594)
+++ branches/JBoss_Portal_Branch_2_4/core/src/main/org/jboss/portal/core/command/MarkupCommand.java 2006-11-07 20:40:39 UTC (rev 5595)
@@ -67,6 +67,8 @@
import org.jboss.portal.theme.render.ModifiableMarkupResult;
import javax.servlet.http.HttpServletRequest;
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -86,43 +88,69 @@
public abstract class MarkupCommand extends PortalObjectCommand
{
- /** . */
+ /**
+ * .
+ */
private static String WINDOW_ACCESS_DENIED = "core.render.window_access_denied";
- /** . */
+ /**
+ * .
+ */
private static String WINDOW_UNAVAILABLE = "core.render.window_unavailable";
- /** . */
+ /**
+ * .
+ */
private static String WINDOW_ERROR = "core.render.window_error";
- /** . */
+ /**
+ * .
+ */
private static String WINDOW_INTERNAL_ERROR = "core.render.window_internal_error";
- /** . */
+ /**
+ * .
+ */
private static String WINDOW_NOT_FOUND = "core.render.window_not_found";
- /** . */
+ /**
+ * .
+ */
private static String HIDE = "hide";
- /** . */
+ /**
+ * .
+ */
private static String SHOW = "show";
- /** . */
+ /**
+ * .
+ */
private static final CommandInfo info = new CommandInfo(false, "view", true);
- /** . */
+ /**
+ * .
+ */
private final String pageRef;
- /** . */
+ /**
+ * .
+ */
private final MarkupContainer markupContainer;
- /** . */
+ /**
+ * .
+ */
private Page page;
- /** . */
+ /**
+ * .
+ */
private PortalLayout layout;
- /** . */
+ /**
+ * .
+ */
private boolean personalizable;
/**
@@ -656,7 +684,7 @@
for (Iterator j = supportedWindowStates.iterator(); j.hasNext();)
{
WindowState windowState = (WindowState)j.next();
- String url = invCtx.createUpdateNavigationalStateURL(null, windowState);
+ String url = cleanQueryString(invCtx.createUpdateNavigationalStateURL(null, windowState));
boolean disabled = windowState.equals(currentWindowState);
WindowResult.Action action = new WindowResult.Action(windowState, url, !disabled);
windowStates.add(action);
@@ -678,7 +706,7 @@
for (Iterator j = supportedModes.iterator(); j.hasNext();)
{
Mode mode = (Mode)j.next();
- String url = invCtx.createUpdateNavigationalStateURL(mode, null);
+ String url = cleanQueryString(invCtx.createUpdateNavigationalStateURL(mode, null));
boolean disabled = mode.equals(currentMode);
WindowResult.Action action = new WindowResult.Action(mode, url, !disabled);
modes.add(action);
@@ -686,6 +714,37 @@
actionMap.put(WindowResult.MODES_KEY, modes);
}
+ /**
+ * Fixes href urls by replacing with html character entities.
+ *
+ * @param url
+ * @return
+ */
+ public static String cleanQueryString(String url)
+ {
+ final StringBuffer cleansed = new StringBuffer();
+
+ final StringCharacterIterator iterator = new StringCharacterIterator(url);
+ char currentChar = iterator.current();
+ while (currentChar != CharacterIterator.DONE)
+ {
+ if (currentChar == '\"')
+ {
+ cleansed.append(""");
+ }
+ else if (currentChar == '&')
+ {
+ cleansed.append("&");
+ }
+ else
+ {
+ cleansed.append(currentChar);
+ }
+ currentChar = iterator.next();
+ }
+ return cleansed.toString();
+ }
+
/*
private static void createMoveActions(Map actionMap, WindowNavigationalState state, RenderInvocation render, String handle)
{
More information about the jboss-svn-commits
mailing list