Java - Escapar caracter "\" de una ruta recuperada de BBDD

 
Vista:
sin imagen de perfil

Escapar caracter "\" de una ruta recuperada de BBDD

Publicado por David (1 intervención) el 14/01/2015 09:58:58
Buenos días,

Estoy teniendo el siguiente problema, a ver si podéis echarme una mano.
Me han pedido pintar un menú recuperando los links de las opciones de una tabla de BBDD. Es una aplicación que ya estaba hecha y aunque no es lo más apropiado, todo el código java incluso para acceder a los datos está dentro de la misma jsp, pero bueno, este no es el problema, porque esa parte la está haciendo bien. Estoy trayendo con una select los enlaces de la tabla y se utilizan correctamente para pintar las opciones. El problema viene de un enlace concreto que hay en la tabla para una de las opciones. Todos son enlaces, bien externos, del tipo http://www.google.es, bien internos a alguna página de la propia aplicación. Pero este enlace concreto que me está dando problemas, es a una aplicación o un portal al que acceden de la siguiente manera "\\portal\EstadisticasSAD\IndiceEstadisticas\index .jsp". Lo que está haciendo el código, en primer lugar es eliminar el carácter "\" de manera que toma "portalEstadisticasSADIndiceEstadisticasindex. jsp" y luego intentar cargarlo dentro del entorno y estructura de la propia web, lo cual tampoco es correcto, porque es algo externo. Os pongo sólo la parte del código de la jsp que está haciendo mal.

En el código java hago esta query, que está trayendo bien los datos y guardo el dato recuperado para el enlace en una variable
<%
sql="SELECT a.id_tab AS id, a.name AS nametab, is_visible AS visible, file_name AS filename, is_only_icon AS onlyicon, node_order AS node, link AS link, int_link AS intlink FROM nptab a, nptablink b WHERE a.id_tab = b.id_tab order by node ";

String link = rs.getString("link") != null ? (String) rs.getString("link") : "";
%>

Luego en javascript asigno esta variable java a una variable javasccript

var link = '<%=link%>';

y la utilizo para construir dinámicamente el código html que luego pinto

var strHTMLderecha += "onClick='window.open(\"" + link + "\")'>";

Esto lo está haciendo bien para cualquier enlace excepto para este concreto que utiliza barras invertidas "\". Entiendo que lo que hay que hacer es alguna secuencia de escape para que tome bien las barras, pero no doy con la tecla.

¿Podéis echarme una mano?, por favor.

Muchas gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder