Tiles: Sobrescrevendo conteúdo de uma definition

0 respostas
Mantu

Olá pessoal!
Gostaria de saber se eu posso fazer algo do tipo, no meu tiles-definitions.xml:

...
	<definition name="father.def">
		<putList name="path">
			<item value="path_header" link=""/>
			<item value="path_header_servicos" link="" />
		</putList>
		<putList name="especificCSS">
			<item value="pages"  link="/css/pages.css"/>
		</putList>
		...
	</definition>

	<definition name="son.def" extends="father.def">
		<putList name="path">
		</putList>
		<putList name="especificCSS">
			<item value="tabelas" link="/css/tabelas.css"/>
			<item value="pages"  link="/css/pages.css"/>
		</putList>
		...
	</definition>
...

Bom, o que diabos eu to querendo fazer?
Eu tenho uma definição pai que tem uma lista path de caminhos que uso, por exemplo, pra inserir um navbar e uma outra lista especificCSS pra “espetar” arquivos css às páginas baseadas nesta definição.
O que eu estou tentando fazer com o código acima é criar uma definição son.def, baseada em father.def, que
-“Suma” com o navbar
-“Espete” um css adicional

O problema é que quando tento acessar a página inicial do meu sistema eu tomo uma exceção (acho que qualquer página na verdade, mas apenas uma vez isto ocorre):

org.xml.sax.SAXParseException: The content of element type "definition" must match "(icon?,display-name?,description?,put*,putList*)".
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1666)
	at org.apache.struts.tiles.xmlDefinition.XmlParser.parse(XmlParser.java:277)
	at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFile(I18nFactorySet.java:511)
	at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFiles(I18nFactorySet.java:446)
	at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.createDefaultFactory(I18nFactorySet.java:263)
	at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:238)
	at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:188)
	at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.init(ComponentDefinitionsFactoryWrapper.java:102)
	at org.apache.struts.tiles.TilesUtilImpl.createDefinitionsFactory(TilesUtilImpl.java:136)
	at org.apache.struts.tiles.TilesUtil.createDefinitionsFactory(TilesUtil.java:165)
	at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.getDefinitionsFactory(JspTilesViewHandlerImpl.java:97)
	at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:165)
	...

Eu não posso “sobrescrever” os elementos de uma definition? Se não, como é que eu posso sumir com o navbar e espetar um css adicional?

Valeu pessoal!

Criado 22 de agosto de 2007
Respostas 0
Participantes 1