[RESOLVIDO] Vraptor - Problema desconhecido ao usar JavaScript

5 respostas
C
javax.el.ELException: Failed to parse the expression [${parametros.nomeCondicao'+counter+' }]
	org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:146)




root cause

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/migrador/index.jsp at line 22

19: 		    }   
20: 			
21: 			var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
22:                 newTextBoxDiv.after().html('Condição:<input type="text" name="parametros.nomeCondicao'+ counter + '" id="nomeCondicao' + counter+'" value="${parametros.nomeCondicao'+counter+' }" size="25"> Celula: <input type="text" name="parametros.precoCondicao'+counter+'" id="precoCondicao'+counter+'" value="${parametros.precoCondicao'+counter+' }" size="5"> Multiplicar por: <input type="text" name="parametros.precoCondicao'+counter+'+multiplo" id="precoCondicao'+counter+'multiplo" value="${parametros.precoCondicao'+counter+'multiplo }" size="15">');
23:             
24: 			newTextBoxDiv.appendTo("#TextBoxesGroup");
25:

Estou tentando executar o javaScript dentro do projeto, a página em html fora do projeto funciona normalmente...Alguém pode me ajudar?

Vou postar aqui em baixo o código html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Migrador</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
</head>
<body bgcolor="#E3F0F9">
<script type="text/javascript">

    $(document).ready(function(){

	    var counter = 2;
		
	    $("#addButton").click(function () {
				
			if(counter>20){
		        alert("Only 20 textboxes allow");
		        return false;
		    }   
			
			var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
                newTextBoxDiv.after().html('Condição:<input type="text" name="parametros.nomeCondicao'+ counter + '" id="nomeCondicao' + counter+'" value="${parametros.nomeCondicao'+counter+' }" size="25"> Celula: <input type="text" name="parametros.precoCondicao'+counter+'" id="precoCondicao'+counter+'" value="${parametros.precoCondicao'+counter+' }" size="5"> Multiplicar por: <input type="text" name="parametros.precoCondicao'+counter+'+multiplo" id="precoCondicao'+counter+'multiplo" value="${parametros.precoCondicao'+counter+'multiplo }" size="15">');
            
			newTextBoxDiv.appendTo("#TextBoxesGroup");
				
		    counter++;
	    });

	    $("#removeButton").click(function () {
		    if(counter==1){
		        alert("No more textbox to remove");
		        return false;
		    }   
	        counter--;
			
	        $("#TextBoxDiv" + counter).remove();
		});
		
		$("#getButtonValue").click(function () {
		
			var msg = '';
			for(i=1; i<counter; i++){
				msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val();
			}
		   	alert(msg);
		});
		
  });
</script>
<form action="migrar" method="post" enctype="multipart/form-data">
<fieldset>
<legend><b>Migrar Produtos</b></legend>

<p>Planilha: <input type="file" name="planilha"/><br/><hr>
Digite [$] antes da letra da célula, para identificar. Digite [+] para concatenar textos ou células, e [''] para adicionar texto ou espaçamento.<br/>
Ex:[ 'Produto' + $A + ' ' + $B ]</p>

<p>Referência: <input type="text" name="parametros.referencia" id="referencia" value="${parametros.referencia }" size="15">Descrição: <input type="text" name="parametros.descricao" id="descricao" value="${parametros.descricao }" size="30">Complemento: <input type="text" name="parametros.complemento" id="complemento" value="${parametros.complemento }" size="50"> </p>

<hr>
 <label for="radio1">
                        <input name="radio" type="radio" id="radio1" value="rfile" onclick="document.getElementById('representada_nova').style.display='block';document.getElementById('representada_existente').style.display='none';" checked />
                         Cadastrar Representada<br />
                </label>

                <label for="radio2">
                        <input type="radio" name="radio" id="radio2" value="rtexto" onclick="document.getElementById('representada_existente').style.display='block';document.getElementById('representada_nova').style.display='none';" />
                        Carregar Representada:<br />
                </label>

               

                <label id="representada_nova">
     
						Nome:<input name="parametros.representadaNova" type="text" id="representadaNova" value="${parametros.representadaNova }" size="25" />
                </label>

                <label id="representada_existente" style="display:none">
                        ID:<input name="parametros.representadaExistente" type="text" id="representadaExistente" value="${parametros.representadaExistente }" size="10" />
                </label>
<hr>
<p>Célula IPI: <input type="text" name="parametros.ipicelula" id="ipicelula" value="${parametros.ipicelula }" size="5"> Multiplicar por/Fixo <input type="text" name="parametros.ipiMultiploouFixo" id="ipiMultipliouFixo" value="${parametros.ipiMultiploouFixo }" size="15"><br/>
Para deixar um valor fixo, preencha o campo multiplicar por/fixo e deixe a Célula IPI em branco</p>
<label for="radioPreco1">
<input name="radioPreco" type="radio" id="radioPreco1" value="rfile" onclick="document.getElementById('precoUnico').style.display='block';document.getElementById('precoCondicao').style.display='none';" checked />
Preço Único:<br />
</label>
				
<label for="radioPreco2">
<input type="radio" name="radioPreco" id="radioPreco2" value="rtexto" onclick="document.getElementById('precoCondicao').style.display='block';document.getElementById('precoUnico').style.display='none';" />
Preço por Condição:<br />
</label>

<label id="precoUnico"> 
Célula Preco Unico: <input type="text" name="parametros.precoUnico" id="precoUnico" value="${parametros.precoUnico }" size="5"> Multiplicar por <input type="text" name="parametros.precoUnicomultiplo" id="precoUnicomultiplo" value="${parametros.precoUnicomultiplo }" size="15">
</label>

<label id="precoCondicao" style="display:none">
<div id='TextBoxesGroup'>
	<div id="TextBoxDiv1">
	Condição:<input type="text" name="parametros.nomeCondicao1" id="nomeCondicao1" value="${parametros.nomeCondicao1 }" size="25">
Célula:<input type="text" name="parametros.precoCondicao1" id="precoCondicao1" value="${parametros.precoCondicao1 }" size="5"> 
Multiplicar por <input type="text" name="parametros.precoCondicao1multiplo" id="precoCondicao1multiplo" value="${parametros.precoCondicao1multiplo }" size="15">

		
	</div>
</div>
<input type='button' value='Adicionar Preço' id='addButton'>
<input type='button' value='Remover Preço' id='removeButton'></label>  <hr>
<p>Primeira Linha: <input type="text" id="linhaInicial" name="parametros.linhaInicial" value="${parametros.linhaInicial }" size="12"> Última Linha: <input type="text" id="linhaFinal" name="parametros.linhaFinal" value="${parametros.linhaFinal }" size="12"><br/></p>
<button type="submit">Migrar</button> <button type="reset">Limpar</button>

</fieldset>
</form>
</body>
</html>

Desde já, Obrigado

5 Respostas

Lucas_Cavalcanti

vc percebeu que está usando uma variável javascript dentro de uma EL (${}) do jsp?

C

Não, na verdade nem entendi o que você está falando… Não tenho muita experiência em Java, e nem em Vraptor.

C

E agora além do problema acima, com o javascript…
não consigo adicionar imagens/css no meu projeto…
já pesquisei no forum, o caminho do projeto está correto… não entendo o que porque de não estar funcionando!

<link rel="stylesheet" type="text/css" href="<c:url value="/css/admin.css"/>"/>


Lucas_Cavalcanti

Olá clarel,

isso não é uma dúvida de VRaptor, é de JSP + JSTL…

tudo que vc faz no jsp usando as tags JSTL (ex <c:if, <c:url) e EL (ex ${produto.nome}) é processado do lado do servidor, e só.

tudo que vc faz via javascript (dentro da tag script) é executado no browser, então vc não tem mais acesso às coisas do jsp.

em resumo: vc consegue colocar coisas do jsp dentro do javascript, mas vc não consegue colocar coisas do javascript dentro das coisas do jsp (como a variável counter)

C

Entendido, obrigado!

Criado 26 de janeiro de 2012
Ultima resposta 12 de mar. de 2012
Respostas 5
Participantes 2