2010-08-26 8 views
16

Come faccio a correggere questa dichiarazione:Converti valore intero a stringa usando JSTL/EL

${model.myHashtable[model.data.id]}. 

myHashtable è definito come

Hashtable<String, String> 

Ma, ${model.data.id} restituisce un int.

ho cercato di fare qualcosa di simile

${model.myHashtable['model.data.id']} 

Ma non funziona. Altre idee, oltre a modificare il tipo di id a String?

risposta

33

Impostare come corpo di <c:set>. Sarà convertito implicitamente in String.

<c:set var="idAsString">${model.data.id}</c:set> 
<c:out value="${model.myHashtable[idAsString]}" /> 
+0

Grazie, proverà questo fuori domani. :) – geffchang

+0

Penso che questa è la terza volta questo mese, una delle tue risposte mi ha aiutato. Grazie! – IcedDante

+0

È questo il modo migliore per confrontare una stringa con un numero in EL senza doversi preoccupare di un'eccezione generata? – theyuv

0

è possibile utilizzare sia org.apache.commons.collections4.map.CaseInsensitiveMap String "1" e 1 int sono la stessa chiave;

0

$ {''. Concat (model.data.id)} funziona per me, puoi provarlo.

0

Nel file JSP:

<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %> 

<!-- lines of code... --> 

<fmt:parseNumber var = "id_value" type = "number" value = "${model.data.id}" /> 
<c:out value = "${id_value}" /> 
Problemi correlati