Como colocar uma variável em um formulário JSP?

Boa noite,

Estou fazendo meu primeiro projeto em JSP e tenho uma dúvida. Criei um JSP com formulário que abastece uma lista de tarefas. Esta lista gera uma tabela que possui um botão “resolve”. Este botão envia para um outro JSP que possui um formulário onde deverão aparecer os campos da lista e dois campos em branco que deverão ser preenchidos.

Pergunta: Como coloco o valor dos campos no formulário? Lembro que eles estão em um JSP e o formulário em outro.

Seguem os códigos.

JSP que cria a tabela:

<%@ page import="java.util.*,rtp.model.Tarefa" %>

<html>
<body>
<h1 align="center">Lista de tarefas</h1>
<p>

<%
List<Tarefa> tarefas = (List)request.getAttribute("tarefas");

if(tarefas.isEmpty()){
	
  }
else {
  out.println("<table border=\"1\" width=\"300px\">");
  out.println("<tr align=\"center\">");
  out.println("<td>Título</td>");
  out.println("<td>Prazo de Execução</td>");
  out.println("<td>Detalhes</td>");
  out.println("<td>Responsável</td>");
  out.println("<td>Urgente</td>");
  out.println("<td>Status</td>");
  out.println("<td>Data Conclusão</td>");
  out.println("<td>Descrição Solução</td>");
  out.println("<td>Resolver</td>");
  out.println("</tr>");
  }

for (Iterator<Tarefa> iterator = tarefas.iterator();
  iterator.hasNext();) {
  Tarefa t = (Tarefa) iterator.next();
%>

  <tr>
    <td><%=t.gettitulo() %></td>
    <td><%=t.getdtPrazo() %></td>
    <td><%=t.getdetalhes() %></td>
    <td><%=t.getresponsavel() %></td>
    <td><%=t.geturgente() %></td>
    <td><%=t.getstatus() %></td>
    <td><%=t.getdtConclusao() %></td>
    <td><%=t.getdescrSolucao() %></td>
    <td><input type="button" onClick="window.location.href='resolverTarefa.jsp'" 
    value="Resolver"/></td>
  </tr>
<%
  }

out.println("</table>");
%>

<br></br>
<a href="index.jsp">Página inicial</a>
</body>
</html>

JSP que cria o segundo formulário:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h1 align="center">Resolver Tarefa</h1>
<form method="post" action="ResolverTarefa.do">
Complete os dados da tarefa:<p>
Título:
<input type="text" name="titulo" value="" size="40" disabled/>
<br>
Prazo:
<input type="text" name="dtPrazo" value="" size="10" disabled/>
<br>
Detalhes:
<input type="text" name="detalhes" value="" size="50" disabled/>
<br>
Urgente:
<input type="text" name="urgente" value="" size="8" disabled/>
<br>
Responsável:
<input type="text" name="responsavel" value="" size="15" disabled>
<br>
Data de Conclusão:
<input type="text" name="dtConclusao"/>
<br>
Descrição da Solução:
<input type="text" name="descrSolucao"/>
<br><br>
<center>
<input type="SUBMIT">
</center>
</form>
<a href="index.jsp">Página inicial</a>
</body>
</html>

Olá,

Acho que voce pode fazer assim:

<td><input type="button" onClick="window.location.href='resolverTarefa.jsp?variavel1='valorDaVariavel1'&variavel2='valorDaVariavel2''"   
    value="Resolver"/></td>  

E no seu resolverTarefa.jsp você recupera esses valores com o request.getParameter(variavel1), request.getParameter(variavel2)

Olá Edifran,

Para facilitar vamos assumir que só existem os campos “titulo” e “dtPrazo” na tabela.
Então tremos:

No result.jsp:

  <tr>
    <td><%=t.gettitulo() %></td>
    <td><%=t.getdtPrazo() %></td>
    <td><input type="button" onClick="window.location.href='resolverTarefa.jsp?tituloAux='<%=t.gettitulo() %>''"     
    value="Resolver"/></td>
  </tr>

Tudo ok com o result.jsp.

No resolverTarefa.jsp:

Título:
<input type="text" name="titulo" value="<%= request.getParameter(tituloAux)%>" size="40" disabled/>
<br>
Prazo:
<input type="text" name="dtPrazo" value="" size="10" disabled/>
<br>
<center>
<input type="SUBMIT">
</center>

O eclipse mostra o erro “tituloAux cannot be resolve”.
Tentei declarar a variável tituloAux

<%String tituloAux; %>

e mostra o erro “The local variable tituloAux may not have been initialized”

Tentei declarar a variável no result como public mas o eclipse não aceitou, aceitou apenas como final.

Não sei aonde está o erro.

Obrigado pela ajuda.

Com o básico do inglês você resolveria.
Tente assim:

<%String tituloAux = request.getParameter("tituloAux"); %> 
1 curtida

Olá,

colque o tituloAux entre aspas no request.getParameter(tituloAux)

Olá pessoal,

Erick, o problema não é o inglês é o desconhecimento de jsp. Eu já havia tentado da forma que você colocou mas o formulário fica em branco.

Edifran, já colocquei as aspas.

O result.jsp está enviando corretamente, o problema está no imput do resolverTarefa.jsp, vejam o código:

<p>
Título:
<input type="text" name="titulo" value="<%String tituloAux = request.getParameter("tituloAux");%>" size="40" disabled/>
<br>
Prazo:
<input type="text" name="dtPrazo" value="" size="10" disabled/>
<br>
Data de Conclusão:
<input type="text" name="dtConclusao"/>
<br>
Descrição da Solução:
<input type="text" name="descrSolucao"/>
<br><br>
<center>
<input type="SUBMIT">
</center>

Fiz o seguinte teste:

<%String tituloAux = request.getParameter("tituloAux");
out.println(tituloAux);%>

<p>
Título:
<input type="text" name="titulo" value="" size="40" disabled/>
<br>

E imprime exatamente o título cadastrado ou seja está funcionando, só preciso colocar o valor da variável tituloAux no “value” da “imput” e não sei a sintaxe.

Abs.

Pessoal,

Resolvido:

<%String tituloAux = request.getParameter("tituloAux");
out.println(tituloAux);%>

<p>
Título:
<input type="text" name="titulo" value="<%=tituloAux%>" size="40" disabled/>
<br>

Valeu a ajuda.

Velho, http://www.caelum.com.br/download/caelum-java-web-fj21.pdf =D vai te ajudar bastante.