Foros del Web » Programación para mayores de 30 ;) » Java »

JSTL - Codoficacion de Coma "," en URL

Estas en el tema de JSTL - Codoficacion de Coma "," en URL en el foro de Java en Foros del Web. Estimados.. tengo el sgte problema: necesito colocar una coma al crear una URL, pero al displayar es codificada a "%2C". existe la alternativa de sobreescribir ...
  #1 (permalink)  
Antiguo 10/04/2007, 16:28
 
Fecha de Ingreso: abril-2007
Ubicación: Stgo-Chile
Mensajes: 5
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta JSTL - Codoficacion de Coma "," en URL

Estimados.. tengo el sgte problema:
necesito colocar una coma al crear una URL, pero al displayar es codificada a "%2C".
existe la alternativa de sobreescribir el resultado,,, pero porque ocurre??.. de que otra forma elegante se puede resolver para que no ocurra???

Aca esta el ejemplo:

Se solicita:
------------

--%><c:url var="CategoryDisplayURL" value="CategoryDisplay" scope=""><%--
--%><c:param name="langId" value="${langId}" /><%--
--%><c:param name="storeId" value="${WCParam.storeId}" /><%--
--%><c:param name="catalogId" value="${WCParam.catalogId}" /><%--
--%><c:param name="categoryId" value="${subCategory.categoryId}" /><%--
--%><c:param name="parent_category_rn" value="${topCategory.categoryId }" /><%--
--%><c:param name="top_category" value="${topCategory.categoryId}" /><%--
--%><c:param name="r_path" value="${ topCategory.categoryId}-,-${subCategory.categoryId}" /><%--
--%></c:url><%--



Como resultado se obtiene:
Notese que la COMA, "," ha sido cambiada a "%2C"

CategoryDisplay?langId=-5&storeId=10001&catalogId=40000000577&categoryId=1 349791&parent_category_rn=20096883&top_category=20 096883&r_path=20096883-%2C-1349791
  #2 (permalink)  
Antiguo 10/04/2007, 17:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: JSTL - Codoficacion de Coma "," en URL

¿Y que tiene de malo que la coma aparezca así?
  #3 (permalink)  
Antiguo 11/04/2007, 09:06
 
Fecha de Ingreso: abril-2007
Ubicación: Stgo-Chile
Mensajes: 5
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: JSTL - Codoficacion de Coma "," en URL

ocurre que se necesita enviar el URL como string, con la coma incluida para el contador de visitas de la pagina....
Entonces "%2C" es distinto a ","

Gracias por la respuestas.
  #4 (permalink)  
Antiguo 11/04/2007, 11:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: JSTL - Codoficacion de Coma "," en URL

Ummmm... investigando un poco....
La cuestion es que cuando quieres enviar una cadena como parametro, la especificación de los URLS (RFC 1738)[2] dice que los caracteres no permitidos han de ser codificados usando el "URL-encoding"[3]

De todas formas, ocurren dos cosas:
1.- En realidad la coma (,) no sería obligatorio que codificarla, ya que es uno de los caracteres permitidos. Según el RFC:
Cita:
"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
2.- De todas formas, que la coma aparezca así no tendría que impedir en ningún caso que el programa que recibe la URL lo interprete correctamente, ya que enviarla codificada es totalmente legal, así que te debería funcionar igualmente. Citando la RFC de nuevo:
Cita:
...On the other hand, characters that are not required to be encoded
(including alphanumerics) may be encoded within the scheme-specific
part of a URL, as long as they are not being used for a reserved
purpose.
Si no te funciona, puedes "reclamar" al programa que recibe la URL que no esta tratando correctamente los URLs codificados segun el estandar, o puedes "indicar" a la libreria de tags que en realidad la coma no hace falta codificarla y ver si se puede configurar... Pero yo apostaría por que el que lo hace mal es el programa que recibe la URL, ya que no es obligatorio pero está permitido enviar la coma de esa forma.

Referencias:
[1]http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
[2]http://www.rfc-editor.org/rfc/rfc1738.txt
[3]http://www.w3schools.com/tags/ref_urlencode.asp
  #5 (permalink)  
Antiguo 13/04/2007, 08:41
 
Fecha de Ingreso: abril-2007
Ubicación: Stgo-Chile
Mensajes: 5
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: JSTL - Codoficacion de Coma "," en URL

Gracias GreenEyed por tus respuestas.
Finalmente encontramos una alternativa (para responderle al cliente):

--%><c:set var="CategoryDisplayURL"><c:url value="CategoryDisplay"><%--
--%><c:param name="langId" value="${langId}" /><%--
--%><c:param name="storeId" value="${WCParam.storeId}" /><%--
--%><c:param name="catalogId" value="${WCParam.catalogId}" /><%--
--%><c:param name="categoryId" value="${category.categoryId}" /><%--
--%><c:param name="top_category" value="${WCParam.top_category}" /><%--
--%></c:url><c:out value="&r_path=${WCParam.top_category},${category. categoryId}"/></c:set><%--
--%><c:set property="texto" value="${category.description.name}" target="${stringUtil}" /><%--
--%><a href="<c:out value="${CategoryDisplayURL}" escapeXml="false" />" target="_top"

luego si vemos la URL, tenemos una hermosa coma ","
  #6 (permalink)  
Antiguo 13/04/2007, 08:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: JSTL - Codoficacion de Coma "," en URL

De todas formas el programa que trata la URL debería ser capaz de tratar la coma. Pero cuando no se puede tocar el otro programa... pues toca hacer estas cosas. Al menos teneis una solución
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:51.