setAttribute de jsp para servlet

Pessoal to com uma duvida tremenda aqui,
Exemplo: eu tenho um listaunidades.jsp nesta jsp eu crio um link na listagem para passar o codigo da unidade selecionada para cadastrar leitos

<a href="cadastroLeitos.jsp?op=c&codigo=<% out.println(u.getCodUnidade()); %>" >

ai estou passando o codigo da unidade para o cadastroleitos.jsp, como passar este codigo para gravar no servlet apartir do cadastro de leitos agora?

no meu servlet tenho o seguinte codigo, só que na verdade não funciona pq o codigo tem q ser passado no cadastro de leitos e nao estou conseguindo fazer o cadastro leitos receber o codigo que vem do listar unidade, o codigo é passado porem não estou sabendo recebe-lo na tela de cadastro de leito.

[code]switch (op) {
//novo
case ‘c’:
leito.setIdLeito(request.getParameter(“idLeito”));
leito.setStatus(Boolean.parseBoolean(request.getParameter(“status”)));
unidade.setCodUnidade(Integer.parseInt(request.getParameter(“codigo”)));
request.setAttribute(“unidade”, unidade);
leito.setUnidade(unidade);
lDAO.salvar(leito);

            break;

[/code]

se alguem poder ajudar com algum exemplo… obrigado.

Na sua Servlet, através da interface HttpServlerRequest, basta fazer isso:

request.getParameter("id");

Se você postar o código inteiro será melhor de analisar.

[]'s

ok, vai ser gigante o código hehehe
só que o codigo que tem que ser passado é de unidade e não de leito. e isso vem da do listarUnidade.jsp que é este

<a href="leitos?op=c&codigo=<% out.println(u.getCodUnidade()); %>" > Leitos</a>

o certo seria no href ser passado a pagina <a href="cadastroleitos.jsp?op=&codigo=<% out.println(u.getCodUnidade()); % >" >
pq no jsp de cadastroleito tenho que pegar este valor colocar em algum campo pra ser mostrado, e depois sim salvar e chamar o servlet pra salvar o codigo de unidade juntamente
como os dados do leito. eu sinceramente não sei como :frowning:

este eh o cadastroleitos.jsp,

[code]<%@page import=“ni.pojos.Unidade”%>
<jsp:useBean class=“ni.pojos.Unidade” id=“unidade” />
<%@page import=“ni.pojos.Leito”%>
<jsp:useBean class=“ni.pojos.Leito” id=“leitos”/>
<%@page contentType=“text/html” pageEncoding=“ISO-8859-1”%>

C.A.I.S. Clemente Ferreira de Lins-SP - Cadastro de Leitos

Cadastro de Leitos

  • Voltar
  • Menu
" method="post" class="forms"> <% if (request.getParameter("op").equals("c")) { %> Código Leito
				<label>
					<span>Id</span> 
					<input type="text" name="idLeito" />
				<label>
				
				<label>
					<span>Status</span>
					<input type="radio" name="status" value="true">Ativo
					<input type="radio" name="status" value="false">Inativo		
				</label>
				
				<input type="submit" value="Cadastrar" class="btn"/>
			</fieldset>           
        <% }else {
            leitos = (Leito)request.getAttribute("leito");
            unidade = (Unidade)request.getAttribute("unidade");              
        %>
			<fieldset>
                                <label
                                    <span>Codigo Unidade</span>
                                    <input type="text" name="codigo" value="<%= unidade.getCodUnidade() %>" readonly="true" />

                            </label>
				<label>
					<span>Código</span>
					<input type="text" name="cod" value="<%= leitos.getCodigoLeito() %>"readonly="true" />
				</label>
				
				<label>
					<span>Id</span>
					<input type="text" name="idLeito" value="<%= leitos.getIdLeito() %> "/>	
				</label>
					<span>Status</span>		
					<input type="radio" name="status" value="true" />Ativo
					<input type="radio" name="status" value="false" />Inativo	
				</label>
				
				<input type="submit" value="Salvar" class="btn"/>
			</fieldset>
        <% } %>
		</form>
	</div>
    <div id="rodape">
        <p class="p_rodape">Powered By: Unilins</p>
    </div>
</body>
[/code]

servlet leitos

[code]package ni.servlets;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ni.daos.LeitoDAO;
import ni.daos.UnidadeDAO;
import ni.pojos.Leito;
import ni.pojos.Unidade;

public class ServletLeitos extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    doPost(request,response);
}


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    Leito leito = new Leito();
    LeitoDAO lDAO = new LeitoDAO();
    Unidade unidade = new Unidade();
    UnidadeDAO uDAO = new UnidadeDAO();
    RequestDispatcher dispatcher = null;


    char op = request.getParameter("op").charAt(0);

    switch (op) {
            //novo
    	case 'c':
            leito.setIdLeito(request.getParameter("idLeito"));
            leito.setStatus(Boolean.parseBoolean(request.getParameter("status")));
            unidade.setCodUnidade(Integer.parseInt(request.getParameter("codigo"))); //creio que nao deveria ser aqui
            request.setAttribute("unidade", unidade); //creio que nao deveria ser aqui
            leito.setUnidade(unidade);
            lDAO.salvar(leito);

            break;
        
        case 'r':
          leito = lDAO.buscaLeito(Integer.parseInt(request.getParameter("cod")));
          request.setAttribute("leito",leito);
          dispatcher = request.getRequestDispatcher("cadastroLeitos.jsp?op=u");
          dispatcher.forward(request, response);
          return;
        
        //atualizar
        case 'u':
            leito.setCodigoLeito(Integer.parseInt(request.getParameter("cod")));
            leito.setIdLeito(request.getParameter("idLeito"));
            leito.setStatus(Boolean.parseBoolean(request.getParameter("status"))); 
            unidade.setCodUnidade(Integer.parseInt(request.getParameter("codigo")));  //creio que nao deveria ser aqui
            request.setAttribute("unidade", unidade);  //creio que nao deveria ser aqui
            leito.setUnidade(unidade);

            lDAO.atualizar(leito);

            break;
        //exluir
        case 'd':
            leito.setCodigoLeito(Integer.parseInt(request.getParameter("cod")));
            lDAO.excluir(leito);


    }
    dispatcher = request.getRequestDispatcher("listarLeitos.jsp");
    dispatcher.forward(request, response);
}

}[/code]

Se eu entendi a sua necessidade, é melhor você passar os objetos de uma jsp para a outra direto, dessa forma, apresentando os dados e solicitando a confirmação do usuário.

O exemplo seguinte mostra como você pode requisitar os objetos que estão na sessão:

&lt;%@page contentType="text/html" pageEncoding="UTF-8"%&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %&gt;
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt; 
&lt;%@ taglib tagdir="/WEB-INF/tags" prefix="caelum" %&gt;

&lt;jsp:useBean id="dao" class="caelum.Contato"/&gt;

&lt;c:import url="cabecalho.jsp" /&gt;
Formulário para alteração de contatos:<br/>
&lt;form action="mvc" method="POST"&gt;
    Id: &lt;input type="text" name="id" value="&lt;c:out value='${param.id}'/&gt;"&gt;<br/>
    Nome: &lt;input type="text" name="nome" value="&lt;c:out value='${param.nome}'/&gt;"&gt;<br/>
    E-mail: &lt;input type="text"name="email" value="&lt;c:out value='${param.email}'/&gt;"&gt;<br/>
    Endereço: &lt;input type="text" name="endereco" value="&lt;c:out value='${param.endereco}'/&gt;"&gt;<br/>
    Data de Nascimento: &lt;input type="text" name="dataNascimento" value="&lt;c:out value='${param.dataNascimento}'/&gt;"&gt;<br/>
    &lt;input type="hidden" name="logica" value="AlteraContatoLogic"/&gt;
    &lt;input type="submit" value="Enviar"/&gt;
&lt;/form&gt;

Através desse:

value="&lt;c:out value='${param.endereco}'/&gt;

… você consegue pegar os objetos.

Espero que ajude!

[]'s

Essas tags são JSTL:

http://www.oracle.com/technetwork/java/index-jsp-135995.html

[]'s

é na verdade e +/- isso que eu quero neh passar de uma jsp direto para a outra e depois passar as informações para o servlet contendo as informações de ambas…
para mim o exemplo que postou é uma forma que ainda não sei “trabalhar” aqueles meio chucro ainda hehe…

vou procurar entender pra poder fazer…
mais eu ainda tenho a necessidade ainda depois de passar o objeto unidade “codigo” para o servlet do leito depois…

fico agradecido por tentar me ajudar…
[]'s

Dê uma olhada nessa apostila aqui, velhinho. Espero que possa lhe ser útil.

[]'s

positivo irei olhar, Obrigado novamente ! :smiley:
hehe

[]'s

Considero importante frisar que essa apostila da caelum é fantástica, não sabia nem como funcionava um servlet e numa noite de estudo consegui pegar conceitos importantes e trabalhos ao longo do projeto que tinha pela frente. Realmente uma grande ajuda, me foi recomendada por um amigo aqui do GUJl, estude-a e você conseguirá evoluir bastante. (mas ainda tem muito por vir… muito!)