Newsgroup: it.comp.java
Titolo: più di un Tiles

Innanzitutto salve!
Vi espongo un problema nel quale mi sono inbattuta.
Stò sviluppando un applicativo web con Struts 1.1 e websphere 5.1.
E stato deciso tenere separate delle funzionalità applicative in toto,
ovvero tre struts-confing.
Fin qui tutto bene, dichiarandoli nel web.xml non ho problemi di
mapping.
Con i tiles invece stò patendo un pò.
Ho (per ora) due .xml per la definizione dei tiles.
Nello struts-confing dove viene riportato il plugin definisco due
proprietà
	<plug-in className="org.apache.struts.tiles.TilesPlugin">
		<!-- Path to XML definition file -->
		<set-property property="definitions-config" value="/WEB-INF/tiles-
defs.xml" />
		<set-property property="definitions-config-riesame" value="/WEB-INF/
tiles-defs-secondo.xml" />
		<!-- Set Module-awareness to true -->
		<set-property property="moduleAware" value="true" />
	</plug-in>
Nel web.xml
	<init-param>
	      <param-name>definitions-config</param-name>
	      <param-value>/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-defs-
secondo.xml</param-value>
    	</init-param>
Ora il mapping è corretto.
Ma se uso i tiles definiti nel secondo xml, ho in risposta un 404, se
invece li definisco nel primo file và tutto bene.
Ho percaso dimenticato qualcosa???
Grazie a chiunque sappia darmi qualche indicazione, anche se vi auguro
di essere tutti in ferie ^^


Meglio se fai così:
[...]
<set-property property="definitions-config" value="/WEB-INF/tiles-
defs.xml, /WEB-INF/> tiles-defs-secondo.xml" />
[...]
La proprietà è sempre "definitions-config" e gli passi i percorsi
delle definizioni, separati da ",".
Non sono in ferie :)


Ti ringrazio :) , così funziona!
Mi sono accorta che facevo un pò un mischione.
Posto la situazione funzionante per intero casomai servisse ad altri
(ed io faccio il punto mentale della situazione)
N.B: Non stiamo parlando di moduli, anche perchè mi dicono che con
struts 1.1 possono generare *confusione*
Io ho diviso sia i file di configurazione per l'applicativo, sia i
files di definizione dei tiles, ma le due cose possono essere fatte a
prescindere l'una dall'altra.
Quindi nella WEB_INF (tra l'altro) i seguenti files xml
- struts-config.xml
- struts-config-secondo.xml
- tiles-defs.xml
- tiles-secondo-defs.xml
L'esatta dichiarazione sarà
Nel web.xml
	 <init-param>
	      <param-name>definitions-config</param-name>
	      <param-value>/WEB-INF/tiles-defs.xml</param-value>
    	</init-param>
	    <init-param>
	      <param-name>config</param-name>
	      <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-
secondo.xml</param-value>
	    </init-param>
nello struts-config.xml (che è quello dove io ho dichiarato il plugin)
	<plug-in className="org.apache.struts.tiles.TilesPlugin">
		<!-- Path to XML definition file -->
		<set-property property="definitions-config" value="/WEB-INF/tiles-
defs.xml,/WEB-INF/tiles-riesame-defs.xml" />
		<!-- Set Module-awareness to true -->
		<set-property property="moduleAware" value="true" />
	</plug-in>
In pratica cosa accade, al runtime l'ActionServlet fà un pappone  dei
vari file di configurazione che trova, creando un unico file.
Per quanto riguarda i tiles (se non ho capito male), in primis viene
caricato quello presente nel web.xml, ma alla fine chi comanda è la
lista nelle proprietà del plugin.
Siccome unisce tutto in unico file di configuazione il plugin và
dichiarato una volta (altrimenti dà anche errore) e non importa in
quale dei due files di configurazione.
Vado a supporre che anche i files di definizione dei tiles vengano
uniti in un unico file ...
Comunque a posteriori un pdf che ho trovato utile:
http://www2.lifl.fr/~dumoulin/tiles/tilesAdvancedFeatures.pdf
Grazie ancora.


Piccola correzione (altrimenti non si capisce)
/WEB-INF/tiles-secondo-defs.xml, non /WEB-INF/tiles-riesame-defs.xml
Quindi:
plug-in className="org.apache.struts.tiles.TilesPlugin">
                <!-- Path to XML definition file -->
                <set-property property="definitions-config" value="/
WEB-INF/tiles-defs.xml,/WEB-INF/tiles-secondo-defs.xml" />
                <!-- Set Module-awareness to true -->
                <set-property property="moduleAware" value="true" />
      </plug-in>
Scusate ^^