Colocar valor de uma variável dentro de um <input type=text/>
Eu quero colocar o valor de uma variavel dentro de um <input type="text"/> vocês sabem como?
Phelipe Lopes
Curtidas 0
Respostas
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
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
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}" />GOSTEI 0
Phelipe Lopes
23/11/2011
mas eu estou usando jsp será que vai funcionar?
GOSTEI 0
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
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
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
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
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
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
23/11/2011
Aqui está minha jsp de pesquisa:
pesquisa.jsp
Minha Servlet
servlet.java
A jsp que vai trazer os resultados
alterar.jsp:
E minha segunda servlet
servlet2.java
<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>
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);
}
}
}
<%@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>
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
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
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: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.
:!:
<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>GOSTEI 0
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
23/11/2011
Posta o erro! =)
GOSTEI 0
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
23/11/2011
Ops, desculpa. O código correto é este: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!
:!:
<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
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
23/11/2011
Que bom que funcionou!
Só complementando, você pode melhorar o código usando um forEach: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]!!
:!:
<table>
<% for (Funcionario func : relacaoFunc){ %>
<tr>
<td>
<input type="text" value="<%=func.getNome()%>" />
</td>
</tr>
<%}%>
</table>GOSTEI 0