2 Replies Latest reply on Jul 2, 2007 5:04 PM by robin.hultman

    Malformed xhtml with facelet include

    robin.hultman

      When 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.