Domanda

sto legando a creare il mio meccanismo di template per un sito. Ho fatto 2 tag personalizzati denominati "TemplateInsert" e "TemplateFor" uno di loro potrebbe usare in questo modo:

<prefix:insert templateFile="someFile>
    <prefix:for name="body">
        some content here
    </prefix:for>

    other prefix:for tags...

</prefix:insert>

Questo funziona perfettamente a meno che non ci sono tag JSF all'interno del vostro "contenuto". Server non sembra per analizzare loro. Qualcuno sa come posso risolvere questo problema?

evviva!

È stato utile?

Soluzione

Questa è una delle ragioni per le quali pletora di JSP è stato succeduto da Facelets come per JSF 2.0 / Java EE 6. JSP offre ben poca capacità di templating. È tuttavia possibile utilizzare Facelets 1.x sul JSF 1.x se si installa separatamente come per la loro docbook .

Facelets offre esattamente la vostra esigenza funzionale già fuori dalla scatola. Un esempio:

template.xhtml

<!DOCTYPE html>
<html lang="en"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
    <head>
        <title><ui:insert name="title" /></title>
    </head>
    <body>
        <ui:insert name="body" />
    </body>  
</html>

page.xhtml

<ui:composition template="template.xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
    <ui:define name="title">Page title</ui:define>
    <ui:define name="body">
        <h:outputText value="JSF tags just work here." />
    </ui:define>
</ui:composition>

direi, andare per Facelets come tecnologia per la vista JSF invece di reinventare una basata su JSP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top