2012-05-16 10 views
5

devo alcuni vecchi file JSP con tag comeL'attributo tag JSP non può essere impostato più di una volta?

<mytag:editbox name="SEL_1" param="onclick='clickit();" param="size='4'" />.

Questi JSP gira molto bene in WebSphere 5.0. Quando lo trasferisco in Websphere 8.0, qualcosa non va. La sorgente java compilata da JSP in questo modo:

editbox.setName("SEL_1"); 
editbox.setParam("size='4'"); //replaced by the last one 
editbox.setParam("size='4'"); 

L'ultimo [attributi] sovrascrive quelli precedenti. Ho anche testato il JSP in Websphere 6.0 e Tomcat. WAS6 è uguale a 8.0 e Tomcat dice:

org.apache.jasper.JasperException: /index.jsp (line: 17, column: 20) Attribute qualified names must be unique within an element 

L'attributo del tag non può essere impostato più di una volta.

È questo il requisito delle specifiche JSP 2.0+? (Penso che il contenitore JSP in WAS5.0 sia JSP 1.2.)

Posso unire i due attributi param in uno per correggere il problema, ma come ottenere il risultato corretto senza modificare la sorgente JSP?

risposta

5

Avere più attributi con lo stesso nome era mai supportato dalla specifica JSP. Se funzionasse su Websphere 5, ciò sarebbe dipeso dal comportamento proprietario consentito da quella versione del server e non da altri. Prendo atto che la classe tag fa qualcosa come aggiungere i valori ad una collezione, o qualcosa di simile.

È necessario refactoring del tag per essere conforme alle specifiche, utilizzando una stringa delimitata o utilizzando tag nidificati.

3

I tag JSP sono elementi XML. E un elemento XML non può avere più attributi con lo stesso nome. IMHO, il tuo codice ha funzionato solo per sbaglio nelle precedenti versioni di Websphere, probabilmente a causa di una convalida sciatta e dell'interpretazione dei tag JSP.

0

avere lo stesso comportamento con WAS 8 è possibile includere questo attributo JSP nel descrittore di distribuzione dell'applicazione (ibm-ext-web.xmi):

allowMultipleAttributeValues insieme a true.

Oppure impostare la proprietà personalizzata del contenitore Web com.ibm.wsspi.jsp.allowMultipleAttributeValues su true.

Fonte: http://www-01.ibm.com/support/docview.wss?uid=swg1PM65454

0

Ho avuto lo stesso problema. Stavo usando i tag struts con i tag della tag tag Display allo stesso tempo, quindi ho affrontato questo problema. Una volta scelto uno per usare l'errore è andato via. L'utilizzo degli stessi tag da due librerie diverse causa ambiguità.

Problemi correlati