Jump to content
sabing

passar valor de um javascript para um atributo em java

Recommended Posts

sabing

eu estou em uma jsp

function changeFunc()
{
  	 var selectBox = document.getElementById("selectBox");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;	  
<% codigo = %>selectedValue;
}

queria armazenar o valor do atributo selectedvalues no atributo em java

Share this post


Link to post
Share on other sites
KTachyon

Explicação:

O Javascript corre no browser.

O Java corre no servidor.

Quando um browser pede ao servidor o JSP, o servidor vai processar o JSP, executando o código Java que o JSP contém, e devolve o HTML resultante ao browser. Logo, não podes simplesmente atribuir um dado de Javascript ao Java, porque no momento em que o HTML chega ao browser, o Java já foi executado.

Solução:

Depende daquilo que queres fazer, mas imaginando que queres passar informação para o servidor para ser trabalhada em Java e devolver uma resposta para o Javascript, a solução será na base de teres um endpoint que é chamado pelo teu Javascript e que envia os dados para o servidor e espera por uma resposta.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
sabing

então eu quero pegar o valor do indice do combox segue o meu algoritmo

<%
						GestorDAO sw = new GestorDAO();
						ResultSet listar = sw.ListarTecnico().executeQuery();
					%>

					<select id="id_s">	

					<%
						while(listar.next())
						{
					%>
				   	 quero pegar esse valor//	<option value="<%out.println(listar.getString("id"));%>"><%out.println(listar.getString("nome"));%></option>
					<%
						}	
					%>

					</select>
					<br>	
						<form action="srvgestor" method="Post">
							<input type="submit" value="Carregar dados" name="dados">
						</form>							
					<br>

Edited by Baderous
geshi

Share this post


Link to post
Share on other sites
sabing

eu consegui ja

<%

GestorDAO sw = new GestorDAO();

ResultSet listar = sw.ListarTecnico().executeQuery();

%>

<form name="frm" action="srvgestor" method="Post">

<select name="Pegar" onchange="document.getElementById('campo').value=this[this.selectedIndex].text">

<%

while(listar.next())

{

%>

<option value="<%out.println(listar.getString("id"));%>"><%out.println(listar.getString("nome"));%></option>

<%

}

%>

</select>

<input type="submit" value="Carregar dados" name="dados">

</form>

Share this post


Link to post
Share on other sites
sabing

eu estou pegando um valor de uma jsp e dando um select no banco de dados usando esse codigo mais quando eu uso o valor do request parametro ele não funciona so não exibe a tela

olha o codigo

String valor = request.getParameter("Pegar");

Connection conn = null;

conn = FabricaConexao.getConexao();

String sql = "SELECT * FROM teste where nome = '"+valor+"' "; //ele não esta achando o valor no where mais quando eu digito o valor ele acha!

Statement stm = conn.createStatement();

ResultSet rs = stm.executeQuery(sql);

while (rs.next())

{

out.println(rs.getString("id"));

}

rs.close();

Share this post


Link to post
Share on other sites
saca-rolhas

Convém não criares filhos da mesma thread espalhados pelo forum, por uma questão de coerência e caso alguém tenha o mesmo seguimento de dúvidas ser mais fácil de aceder à informação

No entanto aqui vai a resposta:

Boas sabing, primeiro eu aconselho-te a usar PreparedStatement ou invés de Statement pois com o PreparedStatement tu podes ter uma String Java com o query SQL que pretendes executar como constante que não necessitas de concatenar pois podes substituir qualquer ponto de interrogação “?” por uma variável no query a ser colocada.

Como tal reconstrui-te o código para:

 Public Static Final String QUERY = "SELECT * FROM teste where nome = ?";
 Connection conn = FabricaConexao.getConexao();
 PreparedStatement ps = conn.prepareStatement(QUERY);
 ps.setString(1, valor);
 ResultSet rs = ps.executeQuery();
 while (rs.next()) {
	 rs.getString(1);
 }
 rs.close();
 ps.close();
 conn.close();

Usa o prepared statement, e no método setString defines o valor do “?” com a tua variável dizendo assim que o 1º ? que encontrar mete a variável valor se houvesse mais variáveis colocavas ps.setString(2, valor2);

Quando for para ir buscar os resultados no ResultSet usa as coordenadas da coluna do valor que queres ir buscar ou seja se queres o valor da 1ª coluna id metes getString(1);, mas atenção para outro tipo de variáveis existe outro tipo de métodos do resultset que podes usar getInt(), por exemplo é um deles.

eu estou em uma jsp

function changeFunc()

{

var selectBox = document.getElementById("selectBox");

var selectedValue = selectBox.options[selectBox.selectedIndex].value;

<% codigo = %>selectedValue;

}

queria armazenar o valor do atributo selectedvalues no atributo em java

Se queres passar um valor de uma variável javascript para Java tens de a enviar de volta para o servidor pois a JSP não te vai resolver o problema se enviares a variável para uma servlet (através de um formulário ou assincronamente) e reenviares para a JSP como variável Java.

Basicamente uma variável numa JSP só pode passar de Java -> Javascript -> Html ou Java -> Html e nunca o contrário.


The worst part of censorship is ****

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.