2014-06-09 18 views
5

Devo essere cieco o usare i termini di ricerca errati perché non riesco a trovare una buona risposta su questo.Come accedere all'attributo padre in un file di tag JSP nidificato?

Ho due file di tag JPS personalizzati. Uno sarà annidato nell'altro. Come posso accedere a un attributo nel tag principale dall'interno del tag secondario?

Un modo per aggirare è aggiungere una variabile per richiedere l'ambito, ma non mi piace questa opzione e potrebbe causare alcuni problemi. C'è un'opzione più semplice?

Grazie!

<%-- OuterTag.tag --%> 
-------------------------------------- 
<%@tag %> 
<%@attribute name="color" required="true" %> 
<c:set var="color" value="${color}" scope="request" /> <%-- I'm trying to avoid doing this --%> 
<div> 
    <jsp:doBody/> 
</div> 


<%-- InnerTag.tag --%> 
-------------------------------------- 
<%@tag %> 
<p style="background-color: ${parent.color}"/> <%-- I want to do something like this --%> 



<%-- Example Usage --%> 
-------------------------------------- 
<custom:OuterTag color="red"> 
    <custom:InnerTag/> 
    <custom:InnerTag/> 
    <custom:InnerTag/> 
</custom:OuterTag> 
+0

Nessun acquirenti? Era una domanda stupida? Sembra che dovrebbe essere così semplice. Ho pensato che sarebbe stata data risposta entro 15 minuti. lol – user3311662

risposta

0

Ciò che si sta tentando di fare qui è perfettamente logico - e ciò che i tag personalizzati e i file di tag dovrebbero consentirci di ottenere. Questo comportamento è basato sull'implementazione ed è stato corretto su Apache see here. Che contenitore stai usando? Ho avuto un problema simile in Jetty e ho archiviato un altro bug che è stato riconosciuto, ma non ancora risolto.

-1

È possibile trovare il tag principale utilizzando:

ParentTag parent = (ParentTag)findAncestorWithClass(this, ParentTag.class); 

Quindi, si può avere metodi pubblici sul genitore i bambini possono utilizzare per interagire con esso.

Date un'occhiata a questo URL per maggiori dettagli: http://www.informit.com/articles/article.aspx?p=26119&seqNum=9

+0

Funziona solo con tag personalizzati a tutti gli effetti, non con tag che l'OP sta usando o chiedendo informazioni. – marc82ch