Malformed xhtml with facelet include
robin.hultman Jul 2, 2007 11:32 AMWhen I changed from Seam 1.2.1.GA to 2.0.0.BETA my menu won't render in Firefox due to malformed xhtml.
I have a template:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:rich="http://richfaces.ajax4jsf.org/rich" xmlns:s="http://jboss.com/products/seam/taglib"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/menu.css" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/omxlap.css" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/calendar/date.css" /> <script language="JavaScript" type="text/javascript" src="/cabin/javascripts/ie_menu_fix.js"></script> <ui:insert name="head"/> </head> <body style="text-align: center;background:#EFEFEF;"> <div class="title" style="margin-left: auto;margin-right: auto;width: 800px;text-align: left; ">Fjällstugelottning - <ui:insert name="title"/></div> <div style="padding: 20px; padding-top: 0px; border: 1px solid #E5E5E5; margin-left: auto;margin-right: auto;width: 800px;text-align: left;background:#FFFFFF;"> <div class="list-toolbar"><ui:include src="list-toolbar.xhtml"/></div> <ui:insert name="content"/> </div> </body> </html>
Which includes another xhtml file:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:rich="http://richfaces.ajax4jsf.org/rich" xmlns:s="http://jboss.com/products/seam/taglib"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/menu.css" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/omxlap.css" /> <link rel="stylesheet" type="text/css" href="/cabin/stylesheet/calendar/date.css" /> <script language="JavaScript" type="text/javascript" src="/cabin/javascripts/ie_menu_fix.js"></script> <ui:insert name="head"/> </head> <body style="text-align: center;background:#EFEFEF;"> <div class="title" style="margin-left: auto;margin-right: auto;width: 800px;text-align: left; ">Fjällstugelottning - <ui:insert name="title"/></div> <div style="padding: 20px; padding-top: 0px; border: 1px solid #E5E5E5; margin-left: auto;margin-right: auto;width: 800px;text-align: left;background:#FFFFFF;"> <div class="list-toolbar"><ui:include src="list-toolbar.xhtml"/></div> <ui:insert name="content"/> </div> </body> </html>
Which includes two different menus
<span xmlns:h="http://java.sun.com/jsf/html" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:rich="http://richfaces.ajax4jsf.org/rich"> <h:outputText rendered="#{s:hasRole('Admin')}"> <rich:dropDownMenu value="Admin"> <rich:menuItem value="Application settings" submitMode="none" onclick="document.location.href='admin/params.seam'"/> <rich:menuItem value="User admin" submitMode="none" onclick="document.location.href='admin/user.seam'"/> <rich:menuItem value="Key word admin" submitMode="none" onclick="document.location.href='admin/keywordList.seam'"/> </rich:dropDownMenu> </h:outputText> </span>
And:
<span xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:rich="http://richfaces.ajax4jsf.org/rich"> <rich:dropDownMenu value="Vyer"> <rich:menuGroup value="Bokbara objekt"> <rich:menuItem value="Sorta på vecka" submitMode="none" onclick="document.location.href='/cabin/weekView.seam'"/> <rich:menuItem value="Sorta på objekt" submitMode="none" onclick="document.location.href='/cabin/bookableView.seam'"/> </rich:menuGroup> <rich:menuSeparator id="menuSeparator11"/> <!-- Use different lists wether the drawing is done or not --> <rich:menuItem value="Anmälningar" submitMode="none" onclick="document.location.href='/cabin/management/subscriptionView.seam'" rendered="#{curPeriod.status == 1}"/> <rich:menuItem value="Anmälningar" submitMode="none" onclick="document.location.href='/cabin/management/subscriptionView1.seam'" rendered="#{curPeriod.status == 2}"/> <rich:menuGroup value="Anmälningar enl. status"> <rich:menuItem value="Accepterade" submitMode="server" action="#{subscriptionView.setListing('5')}"/> <rich:menuItem value="Avslagna" submitMode="server" action="#{subscriptionView.setListing('4')}"/> <rich:menuItem value="Vinnare" submitMode="server" action="#{subscriptionView.setListing('3')}"/> <rich:menuItem value="Reserver" submitMode="server" action="#{subscriptionView.setListing('2')}"/> <rich:menuItem value="Nya" submitMode="server" action="#{subscriptionView.setListing('1')}"/> <rich:menuItem value="Borttagna" submitMode="server" action="#{subscriptionView.setListing('0')}"/> </rich:menuGroup> <rich:menuItem value="Stugor" submitMode="none" onclick="document.location.href='/cabin/management/cabinView.seam'"/> </rich:dropDownMenu> </span>
As far as I can tell it stops rendering after the span tag in the first menu include and then tries to render the second menu include. I then get a malformed xml error in firefox stating that the span tag is not closed.