You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2006/10/19 23:05:32 UTC

svn commit: r465885 - /incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java

Author: jdonnerstag
Date: Thu Oct 19 14:05:31 2006
New Revision: 465885

URL: http://svn.apache.org/viewvc?view=rev&rev=465885
Log:
allow users to register/extend html tags which don't require a close tag

Modified:
    incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java?view=diff&rev=465885&r1=465884&r2=465885
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/markup/parser/filter/HtmlHandler.java Thu Oct 19 14:05:31 2006
@@ -51,13 +51,13 @@
 	static
 	{
 		// Tags which are allowed not be closed in HTML
-		doesNotRequireCloseTag.put("p", Boolean.TRUE);
-		doesNotRequireCloseTag.put("br", Boolean.TRUE);
-		doesNotRequireCloseTag.put("img", Boolean.TRUE);
-		doesNotRequireCloseTag.put("input", Boolean.TRUE);
-		doesNotRequireCloseTag.put("hr", Boolean.TRUE);
-		doesNotRequireCloseTag.put("link", Boolean.TRUE);
-		doesNotRequireCloseTag.put("meta", Boolean.TRUE);
+		registerHtmlTag("p");
+		registerHtmlTag("br");
+		registerHtmlTag("img");
+		registerHtmlTag("input");
+		registerHtmlTag("hr");
+		registerHtmlTag("link");
+		registerHtmlTag("meta");
 	}
 
 	/**
@@ -69,6 +69,18 @@
 	}
 
 	/**
+	 * Register additional HTML tags which presumable don't need a close tag.
+	 * However, instead of doing that, we recommend anyone to use proper XHTML
+	 * instead which is XML compliant.
+	 * 
+	 * @param tagName
+	 */
+	public static final void registerHtmlTag(final String tagName)
+	{
+		doesNotRequireCloseTag.put(tagName, Boolean.TRUE);
+	}
+
+	/**
 	 * Get the next MarkupElement from the parent MarkupFilter and handle it if
 	 * the specific filter criteria are met. Depending on the filter, it may
 	 * return the MarkupElement unchanged, modified or it remove by asking the
@@ -95,8 +107,8 @@
 				}
 				else
 				{
-					throw new ParseException("Tag " + top + " at " + top.getPos()
-							+ " did not have a close tag", top.getPos());
+					throw new ParseException("Tag " + top + " does not have a close tag.", top
+							.getPos());
 				}
 			}
 
@@ -125,7 +137,6 @@
 				// If the name of the current close tag does not match the
 				// tag on the stack then we may have a mismatched close tag
 				boolean mismatch = !top.hasEqualTagName(tag);
-
 				if (mismatch)
 				{
 					top.setHasNoCloseTag(true);