Colocar variável de JS em Variável JSP

8 respostas
E

Olá galera estava desenvolvendo aqui quando me deparei com a seguinte dúvida, tem algum jeito de eu colocar o valor de uma variável js dentro de uma variável do JSP, pq eu tenho uma função JS que traz um código e eu queria coloca-la na variável do JSP para poder fazer uma pesquisa no BD com ela, um outro porém é que eu queria fazer isso sem ter que dar um submit na página novamente. o inverso eu consigo fazer que é colocar uma variável JSP dentro de uma JS faço da seguinte maneira:

function teste(){
   var js =<%=jsp%>
}

eu tentei fazer o inverso mas n deu. Valew!

8 Respostas

D

jah tentou usar um input hidden???

&lt;input type="hidden" id="jsp"/&gt;

no javascript

function setJsp() {
   var jsp = document.getElemtnById("jsp");
    jsp.value = "valor"
}
E

ha sim mas para eu usar o campo hidden eu teria que dar um submit e é oque eu n queria fazer

P

Mas qual a necessidade disso?

Evite scriplets, prefira JSTL, fica mais facil mesclar com javascript:

Exemplo:

<c:set var="count" value="0"/> 
<c:forEach var="dep" begin="0" items="${cmb_dept}">       
 depto[<c:out value="${count}"/>]= new Array("<c:out value="${dep.CODSEC}"/>","<c:out value="${dep.CODDEP}"/>","<c:out value="${dep.HOSCNTSCA_DES}"/>");
 <c:set var="count" value="${count+1}"/> 
</c:forEach>
E

valew pedrosa deu um luz aqui de como vou fazer, na verdade a minha intensão era fazer o maior numero de coisas possiveis com o menor numero de requisições no servidor

V
Olá pessoal, Estou com outro codigo para login e senha, mas ele não está achando a servlet que criei no pacote caminho, ou seja eu criei duas servlets dentro do pacote caminho uma Cadastro e outra Controle, só que quando vou fazer o cadastro clicando em Enviar está dando erro, se vc puder me dar uma ajuda aí parceiro.
index.jsp





<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Login</title>
    </head>
    <body>
        <h2>Criando um sistema de login</h2>
    </body>


<a href="Controle.jsp">Login</a>



</html>



Controle.jsp


<form method=post name="controle" action="Controle">

Login:<br>
    <INPUT TYPE=text name=login VALUE="" size="15">
    <br> Senha:<br>
        <input type=password name=senha value="" size="15">
            <br><br>
                <input type="submit" name="controle" value="Logar">
            </form>
            <br> 
            <a href="Cadastro.jsp">Cadastre-se</a>
            


Cadastro.jsp



<form method=post name="cadastro" action="Cadastro">
    Login:<br>
    <INPUT TYPE=text name=login value="" size="15">
    <br> Senha:<br>
        <INPUT TYPE=password name=senha value="" size="15">
    <br> Redigite Senha<br>
        <input type=password name=senha2 value="" size="15">
            <br><br>
                <input type="submit" name="cadastro" value="Enviar">
            </form>
            
            

Cadastro.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.security.*;
import java.sql.*;
import sun.misc.*;


public class Cadastro extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
String senha2 = request.getParameter("senha2");
if(senha.equals(senha2)){
    // criptografa
    byte chave1[]=login.getBytes();
    login = new BASE64Encoder().encode(chave1);
    byte chave2[] = senha.getBytes();
    senha=new BASE64Encoder().encode(chave2);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("insert into usuario values(?,?)");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            stmt.execute();
            stmt.close();
            out.print("<br>senha:"+senha);
            out.print("<br>Login:"+login);
}catch (Exception e){
out.print(e.getMessage());
}


}
      }
}




Controle.java(servlet dentro do pacote java caminho)



package caminho;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import sun.misc.*;
import java.sql.*;

public class Controle extends HttpServlet {
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
       
        
PrintWriter out = response.getWriter();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
byte chave1[] = login.getBytes();
byte chave2[] = senha.getBytes();
    login = new BASE64Encoder().encode(chave1);
    senha = new BASE64Encoder().encode(chave2);
    
    try{
Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","rodrigo");
PreparedStatement stmt=con.prepareStatement("select * from usuario where login=? and senha=?");
            stmt.setString(1,login);
            stmt.setString(2,senha);
            ResultSet rs=stmt.executeQuery();
            while(rs.next()){
           out.print("Acesso ok,login e senha confere");
            break;
    }
    
     }catch(Exception e){
             out.print(e.getMessage());
     }
     }
}
E meu banco de dados ficou assim:

create database login;
use login;
create table usuario(login varchar(15), senha varchar(15));
I

oi pessoal,

Eu estou tendo um problema do genero. Quero guardar numa variável JSP o valor seleccionado numa combobox e fazer uso dela no código JSP, mas não estou conseguindo.
o meu código é o seguinte:

[color=red] // esta é a minha comobobox[/color] Any Assigned Complete Suspended Withdraw Expired Errored Alerted

<%

for(int i=0; i < tasks.size(); i++){
        try{
            task = (Task) tasks.get(i);
           String state = task.getSystemAttributes().getState();
           if(state.equals(jsp)){ [color=darkred]//dp o valor tem que ser conhecido aqui no codigo jsp[/color]
             
           ......
           ......

%>

Se alguém me conseguir ajudar…

Obrigada

I
Ja tentei desta forma tb:

<%String valor="";%>

function sel(){

var selIndex = document.form1.status.selectedIndex;

<%=valor%>= document.form1.status.options[selIndex].value.toString();

}

<%

for(int i=0; i < tasks.size(); i++){
        try{
        task = (Task) tasks.get(i);
            String taskid = task.getSystemAttributes().getTaskId();
            String state = task.getSystemAttributes().getState();
            List actions = task.getSystemAttributes().getCustomActions();  
            

            if(state.equals(valor)){ [color=red]//variavel é aqi reconhecida[/color]

              .............
             ..............

%>

mas mesmo assim não funcionou, peço por favor que me ajudem…

Obrigada

E
<blockquote><div class="quote-author">isiana:</div>Ja tentei desta forma tb:

<%String valor="";%>

function sel(){

var selIndex = document.form1.status.selectedIndex;

<%=valor%>= document.form1.status.options[selIndex].value.toString();

}

</blockquote>

Bem eu tenho um caso igual, tente assim:

<script type="text/javascript" language=JavaScript> 
function sel(){ 
var selIndex = document.form1.status.selectedIndex; 
var jsp = document.getElemtnById("jsp"); 
document.form1.status.value = valor;// este é o valor que qero ser reconhecido na jsp 
} 
</script>

Aí vc coloca o “valor” la no seu if, dentro do seu for

if(state.equals(valor)){

Ve se dá… :wink:

Criado 23 de março de 2009
Ultima resposta 17 de set. de 2009
Respostas 8
Participantes 6