[RESOLVIDO] JSP - some a "\" que contem na string

2 respostas
I

Olá Pessoal!

Na tabela tenho 2 campos que indicam o caminho de arquivo. O problema é o seguinte:
Na busca (DAO) vem exatamente igual esta no banco:
campo pathPub = C:\ManualConfAmbientes.pub
campo pathPub = C:\sqlserverjdbc.jar.zip

Porém na hora que clico no link Enviar esses parâmetros são passados sem o "\". Fica assim: C:ManualConfAmbientes.pub e C:sqlserverjdbc.jar.zip

dataTable:
<t:dataTable var="pub" value="#{publicacaoBean.listPublicacaoAprovadaParaEnviar}" width="100%" align="center" styleClass="HtmlIntranetTable" >				
				<t:column width="300px">
					<f:facet name="header">
		            	<brHtml:brOutputLabelTitle value="Nome" />
		            </f:facet>
		            <brHtml:brOutputText value="#{pub.nome}" />
				</t:column>
				
				<t:column>
					<f:facet name="header">
		            	<brHtml:brOutputLabelTitle value="Último Teste" />
		            </f:facet>
		            <brHtml:brOutputText value="#{pub.dataHora}" />
				</t:column>
				
				<t:column width="300px">
					<f:facet name="header">
		            	<brHtml:brOutputLabelTitle value="Assunto" />
		            </f:facet>
		            <brHtml:brOutputText value="#{pub.assunto}" />
				</t:column>
				
				
				<t:column width="40px">					
					<h:commandLink id="enviarLink" action="#{envioBean.publicacaoSelecionadaParaEnviar}">  
						<h:outputText value="Enviar"/>   
						<f:param name="id" 				value="#{pub.id}"/> 
						<f:param name="nome" 			value="#{pub.nome}"/> 						
						<f:param name="numLista" 		value="#{pub.numeroLista}"/> 
						<f:param name="nomeLista" 		value="#{pub.nomeLista}"/> 
						<f:param name="pathArq" 		value="#{pub.pathArquivo}"/> 
						<f:param name="objetivo" 		value="#{pub.objetivo}"/> 
						<f:param name="frequencia"		value="#{pub.frequencia}"/> 
						<f:param name="gestor" 			value="#{pub.gestor}"/>						
						<f:param name="pathPub" 		value="#{pub.pathPub}"/> 
						<f:param name="pathZip" 		value="#{pub.pathZip}"/> 	
						<f:param name="remetente" 		value="#{pub.nomeRemetente}"/> 	
						<f:param name="assunto" 		value="#{pub.assunto}"/> 
						<f:param name="idEmailTeste" 	value="#{pub.idEmailTeste}"/> 	
					</h:commandLink>							
				</t:column>			
										
			</t:dataTable>

quando clica no link Enviar, são enviados alguns parâmetros para a próxima tela: aqui já vem sem a barra

public String publicacaoSelecionadaParaEnviar() throws SQLException, IOException{		
		FacesContext context = FacesContext.getCurrentInstance(); 
		Map map = context.getExternalContext().getRequestParameterMap();	
		
		emailTeste.setIdPublicacao(Long.valueOf((String) map.get("id")));
		emailTeste.setNomePublicacao((String) map.get("nome"));
		emailTeste.setDestNumeroLista(Long.valueOf((String) map.get("numLista")));
		emailTeste.setDestNomeLista((String) map.get("nomeLista"));							
		emailTeste.setPathArquivo((String) map.get("pathArq"));
		emailTeste.setObjetivo((String) map.get("objetivo"));
		emailTeste.setFrequencia((String) map.get("frequencia"));
		emailTeste.setGestor((String) map.get("gestor"));
		emailTeste.setPathPub((String) map.get("pathPub"));
		emailTeste.setPathZip((String) map.get("pathZip"));	
		emailTeste.setAssunto((String) map.get("assunto"));	
		emailTeste.setTituloPagina("Enviar Publicação - " + emailTeste.getNomePublicacao());
		emailTeste.setIdEmailTeste(Long.valueOf((String) map.get("idEmailTeste")));
				
		System.out.println("BEAN>>>> " + emailTeste.getPathPub() + " | " + emailTeste.getPathZip());
				
		
		return "nav_enviarPublicacao"; 		
	}
busca na base: aqui vem com a barra
public List<Publicacao> listPublicacaoAprovadasParaEnviar() throws SQLException {
		
		Connection connection = null;
		CallableStatement proc = null;
		ResultSet rs = null;

		List<Publicacao> list = new ArrayList<Publicacao>();
				
		try {			
			connection = dataSource.getConnection();
			proc = connection.prepareCall("{ call pSelPubParaEnvio() }");		
			proc.execute();

			rs = proc.getResultSet();
			
			while (rs.next()) {		
				list.add(new Publicacao(rs.getLong("idPublicacao"), 
										rs.getString("nomePublicacao"), 
										rs.getLong("numeroLista"), 
										rs.getString("nomeLista"), 
										rs.getString("pathArquivo"), 
										rs.getString("objetivo"),
										rs.getString("frequencia"),
										rs.getString("gestor"),
										rs.getString("pathPub"),
										rs.getString("pathZip"),											
										rs.getLong("idRemetente"), 
										rs.getString("nome"),
										rs.getDate("dataHora"),
										rs.getString("assunto"),
										rs.getLong("idEmailTeste"))); 
				
				System.out.println("DAO>>>> " + rs.getString("pathPub") + " | " + rs.getString("pathZip"));
			
			}
			
		} catch (Exception e) {	
			System.out.println("erro >>>> listPublicacaoAprovadasParaEnviar: " + e.getMessage());
		} finally {			
			proc.close();
			connection.close();
		}

		return list;		
	}
saída no console dos sysout:
DAO>>>> C:\ManualConfAmbientes.pub | C:\sqlserverjdbc.jar.zip
BEAN>>>> C:ManualConfAmbientes.pub | C:sqlserverjdbc.jar.zip

Alguem sabe como resolvo isso??

Obrigada!

2 Respostas

Ruttmann

Você tem que usar o escape. Por exemplo, se você manda imprimir:

Ele vai imprimir:

Olá mundo

Mas se você fizer:

Ele imprime:

Tudo que tenha uma única barra “” o Java interpreta como sendo um desses comandos.

Leia isso, que acho que te ajuda.

E pesquise sobre esses escapes também.

:wink:

I

Obrigada Ruttmann!

Criado 27 de setembro de 2013
Ultima resposta 27 de set. de 2013
Respostas 2
Participantes 2