Passar/ (unir valor) JavaScript

1 resposta
J

ola

Será que alguem consegue me auxiliar nesta dúvida/problema que não quer calar. Chequei a essa situação, tenho um list/combobox em meu JSP, quando seleiono um item e chamada uma função em javascript que verifica no list cliente(recuperado no sessão) todos os cliente residente na cidade selecionada, meu problema e unir código java com o valor de cidade.value(cidade selecionada)

<%  
 List<ClienteJB> cliente = null;  
 cliente = (List<ClienteJB>)request.getSession().getAttribute("cliente");  
 %>  
   

 <script type="text/javascript" language="JavaScript">  
     function listarCliente (form){  
         var cidade = form.cCidade.options; //List/Combo - <select></select>  
         var cliente = form.cCliente.options;//List/Combo - <select></select>  
         
         for (i=0; i<local.length;i++){
	   
	       <%
	        for (int x=0; x < equipamento.size();x++){
	   	     if (equipamento.get(x).getLocalJB().getDescricao().equals(  cidade[i].value ){  
MEU PROBLEMA: da maneira que passei o value da combo cidade (cidade[i].value) como acima da erro de página.
	      %>
	         <%}
	    }%>
	}         

     }  
       
 </script>

1 Resposta

reinaldo558

São raras as vezes em que eu uso scriptlets (<%código java%> ) junto com jsp/javascript e o código funciona, aliás eu nunca uso, scriptlet é muito ruim e acredito ser da época do java 1.0 beta, só trabalho com isso quando tenho que dar manutenção em projetos antigos.

Esse problema pode ser facilmente resolvido e de forma até elegante utilizando taglibs core, bean, html, etç.

por exemplo, para capturar variáveis de sessão pode ser utilizada a taglib core

<c:out value="${sessionScope.nomeVariavel}"/>

para comparar coisas, também a tag core

<c:if test="${sessionScope.variavel == 1}"> faça isso </c:if>

o for deve ser substituido pelo iterator, que possui infinitas possibilidades de manipulação do array.

Caso não queira utilizar taglibs, faça tudo direto em um Servlet, código 100% java e na hora de “criar” suas mensagens, faça o Servlet imprimir as tags com out.printoln("<input type=‘text’ value=’" + variavel + “’”); Também não gosto de fazer isso por que a manutenção de um código desse é dificil, se quiser alterar o html da tela, mas prefiro fazer isso a ter que utilizar scriptlet.

Criado 3 de julho de 2009
Ultima resposta 3 de jul. de 2009
Respostas 1
Participantes 2