Author: thomas.heute(a)jboss.com
Date: 2008-12-15 08:50:19 -0500 (Mon, 15 Dec 2008)
New Revision: 12382
Modified:
branches/JBoss_Portal_Branch_2_7/theme/src/main/org/jboss/portal/theme/tag/HeaderContentTagHandler.java
Log:
JBPORTAL-2260: Header Content Injection Patch
Another contribution from Dan Krieger ! Thanks
Modified:
branches/JBoss_Portal_Branch_2_7/theme/src/main/org/jboss/portal/theme/tag/HeaderContentTagHandler.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/theme/src/main/org/jboss/portal/theme/tag/HeaderContentTagHandler.java 2008-12-15
13:13:15 UTC (rev 12381)
+++
branches/JBoss_Portal_Branch_2_7/theme/src/main/org/jboss/portal/theme/tag/HeaderContentTagHandler.java 2008-12-15
13:50:19 UTC (rev 12382)
@@ -27,6 +27,8 @@
import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.w3c.dom.Element;
+import org.apache.xml.serialize.XMLSerializer;
+import org.apache.xml.serialize.OutputFormat;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
@@ -49,6 +51,12 @@
*/
public class HeaderContentTagHandler extends SimpleTagSupport
{
+ protected static final OutputFormat serializerOutputFormat = new OutputFormat() {
+ {
+ setOmitXMLDeclaration(true);
+ }
+ };
+
public void doTag() throws JspException, IOException
{
// Get page and region
@@ -75,15 +83,22 @@
List<Element> headElements = result.getHeaderContent();
if (headElements != null)
{
- StringBuffer buffer = new StringBuffer(124 * headElements.size());
+ XMLSerializer elementSerializer = new XMLSerializer(out,
serializerOutputFormat);
for (Element element : headElements)
{
if (!"title".equals(element.getNodeName().toLowerCase()))
{
- buffer.append(element);
+ try
+ {
+ elementSerializer.serialize(element);
+ }
+ catch(UnsupportedOperationException uoe)
+ {
+ //handle the pseudo-Elements org.jboss.portal.core.metadata.portlet
classes
+ out.println(element);
+ }
}
- }
- out.println(buffer.toString());
+ }
}
}
out.flush();
Show replies by date