Dobry den,

Nebolo by lepsie pre pracu s fragmentami pouzit Tag Files namiesto
SimpleTagSupport? 

http://today.java.net/pub/a/today/2003/11/14/tagfiles.html?page=1

Martin Krajci

-----Original Message-----
From: Goo GGooo [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 22, 2005 5:35 AM
To: Java
Subject: TagLib & JSP fragments

Opet zdravim konferenci :-)

Pisu JSP Tag ktery by mel umet zobrazit polozku z databaze. Jenze
polozky jsou ruznych typu (treba "jidlo" a "nadobi" :-) takze i
HTML/JSP fragmenty pro jejich zobrazeni jsou odlisne. Tyto fragmenty
mam pripravene ve WEB-INF/jspf jako "jidlo.jspf" a "nadobi.jspf", neni
to staticke HTML, ale jsou tam i ruzne hodnoty vyplnovane pomoci EL.
Treba nazev polozky pres ${title}.

Jenze ted nevim jak tenhle fragment vnutit tag handleru ke zpracovani.
Mam:

public void doTag() throws JspException {
    PageContext context = (PageContext)getJspContext();
    JspWriter out=context.getOut();
    String jspfFile = "/path/to/fragment.jspf";
    // [*]
    JspFragment f = getJspBody();
    if (f != null) f.invoke(out);
}

JFPS muzu otevrit a na miste oznacenem [*] bych ho potreboval nejak
zpracovat. Nebo z nej nejak udelat JspFragment a zavolat jeho metodu
invoke(). Jenze nevim jak - v javadocu se u JspFragment pise "Note
that tag library developers and page authors should not generate
JspFragment implementations manually."

Taky jsem v miste [*] zkousel context.include(jspfFile) ale dockal
jsem se jen IllegalStateException.

Muj cil je:
<seznam:forEach outVar="id">
   <seznam:display id="${id}" />
</seznam:forEach>

Napadlo me par nehezkych reseni, treba tomu tagu "display" predavat
jeste parametr "type" a napsat ty fragmenty primo mezi <display> ..
</display> pricemz tag by vzdycky zkontroloval jestli se typ ID
shoduje s typem fragmentu a podle toho ho vypsal/nevypsal. Jenze pro X
polozek a Y fragmentu by byl tag zbytecne volan X*Y, coz se mi nelibi.

Nemate nekdo napad jak tuhle vec udelat "spravne"?

Diky

Goo

Odpovedet emailem