(sry, this has to be in dutch, hope you don't mind)
oi, twee vragen met vrij hoge urgentie:
------------------------------------------------------------------------------------------------------------------------
1)
ik heb zojuist een uitleg gehad van de nieuwe werking van het mm:include
commando.
als ik het goed begrijp worden vanaf nu aan includes *altijd* *alle*
parameters meegegeven die aan de pagina zijn meegestuurd. Om goed te
begrijpen wat dat betekent hieronder een situatieschetsje
index.jsp?huis=1&boom=2&beest=3
<mm:include page="een.jsp">
$huis=groot
$boom=groen
$beest=lief
<mm:include page="twee.jsp">
$huis= groot
$boom= groen
$beest= lief
<mm:include page="drie.jsp"><mm:param name="huis"
value="tekleingeworden"/><mm:param name="boom"
value="omgevallen"/><mm:param name="beest"
value="weggelopen"/></mm:include>
$huis= [groot,tekleingeworden]
$boom= [groen,omgevallen]
$beest= [lief,weggelopen]
waarbij: index.jsp het bestand een.jsp include, dat op zijn beurt
twee.jsp include, waarin weer drie.jsp wordt geinclude, ditmaal met
expliciet meegestuurde waarden voor de variabelen.
Als ik het goed begrepen heb kun je er niet van uitgaan dat in drie.jsp
de waarde voor 'huis' gelijk is aan 'tekleingeworden'... hoe graag je
dat ook zou willen, je zit opgescheept met het feit dat in een andere
context het huis nog groot was.
VRAAG 1: Waarom is dit slim?
Het gedrag van de eerste twee situaties lijkt slim. Zeker in simpele
sites waarin drie.jsp altijd alleen maar in de context van twee.jsp in
de context van een.jsp wordt gebruikt. Maar in www.cinema.nl/cinema2
zitten we met een complexe site, met verschillende hierarchische
contexten van verschillende diepte, waarin sommige included bestanden
(sharedpart.jsp) zowel in meerdere contexten op het zelfde niveau in de
diepte, als in meerdere contexten op verschillende dieptes worden
gebruikt. Dit om te voorkomen dat exact gelijke stukjes code in een stuk
of veertig jsp bestanden moeten worden nagetypt.
Het is dus erg belangrijk dat ik er in drie.jsp altijd van uit kan gaan
dat ik de juiste contextuele waarde in m'n vingers heb, en geen
grabbelton met waardes. Met andere woorden, als ik een waarde expliciet
meegeef dan wil ik dat het de vorige waarde override. Gesteld dat ik de
vorige waarde ook wil meegeven dan kan ik dat wel expliciet doen, toch?
In dat geval gebruik ik wel een extra param huis=$huis:
<mm:include page="drie.jsp"><mm:param name="huis"
value="$huis"/><mm:param name="huis" value="tekleingeworden"/><mm:param
name="boom" value="omgevallen"/><mm:param name="beest"
value="weggelopen"/></mm:include>
$huis= [groot, tekleingeworden]
$boom= [groen,omgevallen]
$beest= [lief,weggelopen]
Hierbij is het stukje code
<mm:param name="huis" value="$huis"/><mm:param name="huis"
value="tekleingeworden"/>
ook nogal lelijk, en zou je liever
<mm:param name="huis" value="$huis","tekleingeworden"/>
willen gebruiken.
In ieder geval wil ik in het sharedpart.jsp er gewoon van uit kunnen
gaan dat de parameter 'object' altijd, ongeacht de diepte of de breedte
van de context, de juiste contextuele waarde heeft meegekregen.
------------------------------------------------------------------------------------------------------------------------
Tot zover m'n vraag over de logica achter de automatische mm:include
aanvulling. Dan nog een vraag over de mogelijkheid om alle meegestuurde
parameters impliciet te kunnen importeren.
2)
Nu zit ik nog met de regel dat ik bij het importeren van variabelen
alles netjes moet uitschrijven:
<mm:import externid="huis"/>
<mm:import externid="boom"/>
<mm:import externid="beest">
Dat is dus drie commando's voor iets dat ik in ��n commando mee kan
geven (referidS = bla,hup,hop)
Waarom niet zo:
<mm:import externids="huis,boom,beest"/>
En zelfs dit lijkt nogal expliciet voor iets dat ik elders al een keer
ge-expliciteerd heb, namelijk in het referids commando. Eigenlijk wil ik
die met ��n commando impliciet alle meegestuurde externids aanroepen. Ik
stuur die parameters immers niet voor niks mee, daar wil ik ook wat mee
doen.
<mm:import externids/>
VRAAG 2: Eenvoudiger kan haast niet. Kost je ook niet telkens dubbel
werk. Kleven hier nog gevaren aan die ik over het hoofd zie?
|| | | ||| || | | ||| | | || | || ||| | | ||
robin verdegaal
[EMAIL PROTECTED]
http://www.xs4all.nl/~robinv