2010-08-26 19 views
16

¿Cómo corregir esta declaración:Convertir valor entero a cadena usando JSTL/EL

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

myHashtable se define como

Hashtable<String, String> 

Pero, ${model.data.id} devuelve un int.

Me trataron de hacer algo como

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

Pero no funciona. ¿Alguna otra idea, además de cambiar el tipo de id a String?

Respuesta

33

Establecerlo como cuerpo de <c:set>. Se convertirá implícitamente en String.

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

Gracias, intentará esta mañana. :) – geffchang

+0

Creo que esta es la 3ª vez que este mes una de tus respuestas me ha ayudado. ¡Gracias! – IcedDante

+0

¿Es esta la mejor manera de comparar una cadena con un número en EL sin tener que preocuparse de que se produzca una excepción? – theyuv

0

puede utilizar tanto org.apache.commons.collections4.map.CaseInsensitiveMap cadena "1" y int 1 son la misma clave;

0

$ {''. Concat (model.data.id)} funciona para mí, puede intentarlo.

0

En archivo 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}" /> 
Cuestiones relacionadas