Colocar valor de uma variável dentro de um <input type=text/>

Java

23/11/2011

Eu quero colocar o valor de uma variavel dentro de um <input type="text"/> vocês sabem como?
Phelipe Lopes

Phelipe Lopes

Curtidas 0

Respostas

Phelipe Lopes

Phelipe Lopes

23/11/2011

[quote="Phelipelc"]Eu quero colocar o valor de uma variavel dentro de um <input type="text"/> vocês sabem como?
"<input...>" em Java Básico? Está parecendo Javascript ou JSP...
GOSTEI 0
Douglas Eric

Douglas Eric

23/11/2011

[quote="Phelipelc"]Eu quero colocar o valor de uma variavel dentro de um <input type="text"/> vocês sabem como?
http://www.icmc.usp.br/ensino/material/html/input.html
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

[quote="Phelipelc"]Eu quero colocar o valor de uma variavel dentro de um <input type="text"/> vocês sabem como?
Oi Philipe, Se quiser setar o valor de uma variável no [b]value[/b] de um input, então terá de se certificar que ela esteja em um dos escopos java web (request, session ou application). Por exemplo:
<input type="text" value="${requestScope.nomeDaVariavel}" />
Onde [b]nomeDaVariavel[/b] é o nome da sua variável setada no escopo de request. Pra sessão, [b]sessionScope[/b], e aplicação, [b]applicationScope[/b]. :!:
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

mas eu estou usando jsp será que vai funcionar?
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

[quote="Phelipelc"]mas eu estou usando jsp será que vai funcionar?
então devia ter explicado melhor no começo! A resposta do colega MetalFull é para JSP
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

[quote="Phelipelc"]mas eu estou usando jsp será que vai funcionar?
Essa solução só se aplica às JSP's. O que estou utilizando é [url="http://www.slideshare.net/antoniopassos/jsp-expression-language"]Expression Language[/url]. E se você se certificar de setar o atributo no request antes de chamar a JSP, então com certeza irá funcionar! :!:
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Eu setei mas na minha classe servlet como faço para pegar a variavel da minha classe servlet?
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Calma, isso ficou ambíguo... Explica o que você está tentando fazer, do início, mostrando os códigos de tudo que envolve a questão!
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Olha antes eu digito na minha jsp o nome do cliente ai ele busca tras os resultados e quero colocar os resultados dentro do input para o funcionario alterar os resultados e assim que ele apertar confimar vou colocar um update no banco pra atualizar os dados do cliente.
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Certo, mas precisamos ver tua classe servlet, tua jsp, o código que tu fez pra poder analisar qual a melhor forma de implementar!
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Aqui está minha jsp de pesquisa: pesquisa.jsp
<html>
	<head>Pesquisa</head>
		<body>
			<form method="POST" name="incluir" id="incluir" action="/Water_Fast/pesquisa">
				Nome: <input type="text" name="pesquisa" id="pesquisa">
				<input type="submit" name="gravar" value="gravar">
			</form>
		</body>
</html>
Minha Servlet servlet.java
package Controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Model.Banco;
import Model.Funcionario;

public class Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public Servlet() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			Funcionario testeCons = new Funcionario();
			Banco BD = new Banco();
			String result = request.getParameter("pesquisa");
			System.out.println("teste"+result);
			ArrayList<Funcionario> relacaoFunc = BD.ConsulFunc(result);
			request.setAttribute("listaFunc", relacaoFunc);
			request.getRequestDispatcher("alterar.jsp").forward(request, response);
		} catch (ClassNotFoundException e) {
			System.out.println("Classe não encontrada"+e);
		} catch (SQLException e) {
			System.out.println("Problemas com o BD"+e);
		}
	}
}
A jsp que vai trazer os resultados alterar.jsp:
<%@page import="java.util.ArrayList" %>
<%@page import="model.Funcionario" %>

<html>
	<head>Consulta</head>
	<% ArrayList<Funcionario> relacaoFunc = (ArrayList<Funcionario>) request.getAttribute("listaFunc");%>
		<body>
			<form method="GET" name="alterar" id="alterar" action="/Projeto/altera">
			<table>
			<% for (int i=0; i<relacaoFunc.size();i++){ %>
			<tr>
				<td>
					<%=relacaoFunc.get(i).getNome() %>
				</td>
			</tr>
			<%}%>
			</table>
			</form>
		</body>
</html>
E minha segunda servlet servlet2.java
package Controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Model.*;

public class Servlet2 extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Banco consFunc = new Banco();
		try {
			ArrayList<Funcionario> relacaoFunc = consFunc.consultaFunc();
			System.out.println(relacaoFunc.size());
			request.setAttribute("listaFunc", relacaoFunc);
			request.getRequestDispatcher("alterar.jsp").forward(request, response);
		} catch (ClassNotFoundException e) {
			System.out.println("Classe não encontrada"+e);
		} catch (SQLException e) {
			System.out.println("Problemas com o BD"+e);
		}
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Mas aqui eu estou só exibindo o resultado da pesquisa, e queria que esse resultado fosse para o <input type="text"/> para eu poder alterar e depois dar update nos dados do cliente...
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Bem, posso supor que você quer exibir uma tabela com todos os campos preenchidos com os valores que vieram do banco e enviá-los para alterar no banco:
 <table>  
         <% for (int i=0; i<relacaoFunc.size();i++){ %>  
         <tr>  
            <td>  
               <%=Funcionario func = (Funcionario) relacaoFunc.get(i) %>
               <input type="text" value="<%=func.getNome()%>" />
            </td>  
         </tr>  
         <%}%>  
         </table>
Entretanto, você terá de ver uma forma de enviar os campos na requisição, uma vez que irá reconhecê-los pelo que estiver no atributo name. :!:
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Deu um erro em cima do func
 <table>    
         <% for (int i=0; i<relacaoFunc.size();i++){ %>    
         <tr>    
            <td>    

//Erro em cima desse func só não sei por que              
<%=Funcionario func = (Funcionario) relacaoFunc.get(i) %>  
               <input type="text" value="<%=func.getNome()%>" />  
            </td>    
         </tr>    
         <%}%>    
         </table>  
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Posta o erro! =)
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Quando está na jsp fica um 'X" em vermelho e não da pra entender qual é o erro mas quando executa aparece o seguinte:
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /alterar.jsp
Funcionario cannot be resolved
10:          <% for (int i=0; i<relacaoFunc.size();i++){ %>    
11:          <tr>    
12:             <td>    
13:                <%=Funcionario func = (Funcionario) relacaoFunc.get(i) %>  
14:                <input type="text" value="<%=func.getNome()%>" />  
15:             </td>    
16:          </tr>    


An error occurred at line: 13 in the jsp file: /alterar.jsp
Syntax error on token "func", delete this token
10:          <% for (int i=0; i<relacaoFunc.size();i++){ %>    
11:          <tr>    
12:             <td>    
13:                <%=Funcionario func = (Funcionario) relacaoFunc.get(i) %>  
14:                <input type="text" value="<%=func.getNome()%>" />  
15:             </td>    
16:          </tr>    


An error occurred at line: 14 in the jsp file: /alterar.jsp
func cannot be resolved
11:          <tr>    
12:             <td>    
13:                <%=Funcionario func = (Funcionario) relacaoFunc.get(i) %>  
14:                <input type="text" value="<%=func.getNome()%>" />  
15:             </td>    
16:          </tr>    
17:          <%}%>    


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	Controller.Servlet.doPost(Servlet.java:32)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.33 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.33
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Ops, desculpa. O código correto é este:
<table>      
         <% for (int i=0; i<relacaoFunc.size();i++){ %>      
         <tr>      
            <td>      
  
//Erro em cima desse func só não sei por que                
<% Funcionario func = (Funcionario) relacaoFunc.get(i); %>    
               <input type="text" value="<%=func.getNome()%>" />    
            </td>      
         </tr>      
         <%}%>      
         </table>
Lembrando, [b]<%= ... %>[/b] representa uma expressão na jsp e quer dizer que o que está dentro deverá ser impresso. [b]<% .. %>[/b] representa um scriptlet, e quer dizer que algum código java será executado dentro! :!:
GOSTEI 0
Phelipe Lopes

Phelipe Lopes

23/11/2011

Vlw cara funcionou \o/ o resto acho que eu consigo que é só pegar o valor do input e mandar um update no banco.
GOSTEI 0
Diogo Souza

Diogo Souza

23/11/2011

Que bom que funcionou! Só complementando, você pode melhorar o código usando um forEach:
<table>        
   <% for (Funcionario func : relacaoFunc){ %>        
   <tr>        
       <td>        
             <input type="text" value="<%=func.getNome()%>" />      
       </td>        
   </tr>        
   <%}%>        
</table>
Se quiser deixar ainda mais limpo e dentro dos padrões, dá uma olhada em [url="http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jstl/jstl.htm"]JSTL[/url]!! :!:
GOSTEI 0
POSTAR