2013-06-03 11 views
6

Scrivo molte pagine JSP per viste diverse. Questi JSP recuperano gli attributi dello scope di richiesta che hanno nomi molto lunghi per evitare la sovrapposizione. Un esempio è:Convenzioni di denominazione degli attributi che risultano in lunghe espressioni EL in JSP Pagina

request.getAttribute("domain1.subdomain1.subdomain11.subdomain111.attributeName"); 

Equivalente a EL sarebbero:

${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']} 

A volte, le mie espressioni EL sono molto lunghi (per esempio quando si utilizza 3 JavaBeans differenti per creare un tag HTML o chiamare funzione javascript).

La mia domanda è se la soluzione che ho trovato sia o meno una buona soluzione di programmazione. Dato il fatto che ogni vista ha il proprio ambito pagina, all'inizio del mio JSP, voglio mettere

<c:set var="attributeName" scope="page" value="${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']}" 

E poi nelle mie espressioni EL, userò

${pageScope["attributeName"]} 

Non è questo creerà confusione sull'attuale portata dell'attributo durante la lettura del codice JSP?

+1

Anche se si sta per implementare questo, questa sarà una violazione della legge di Demeter. Non è possibile sviluppare componenti jsp per 'sottodominio111' e collegare questi componenti insieme per un componente jsp' sottodominio11' e così via? – SpaceTrucker

+0

Questa sarebbe un'ottima soluzione, ma la convenzione di denominazione degli attributi è fuori dalla mia portata. La richiesta passa attraverso molti passaggi prima di raggiungere il JSP e ci sono persino i filtri che elaborano la richiesta dopo il JSP utilizzando alcuni attributi. Non riesco a cambiare la denominazione degli attributi nella richiesta. Non ho nemmeno la mia mano su vari controller che impostano alcuni attributi –

+0

Dovrebbe essere '$ {pageScope [attributeName]}' (senza virgolette). –

risposta

0

Sembra che si stia creando un alias per nome variabile lungo; che va bene

Problemi correlati