GARANTIR DESCONTO

Fórum Enviar parametro para um ArrayList #419732

11/07/2012

0

Preciso popular um alista com dados do banco, o select que me retornará esses dados deverá receber o ID como parametro da clausula where do sql, porém não se trata de um formulario. Preciso saber como enviar o ID do meu JSP, para a minha classe DAO, responsável onde está o metodo que executará o select. Porém isso deve ser feito de forma automática quando a págima é carregada. Desde já agradeço

Eis o método da minha classe DAO
Preciso enviar o id que está no meu jsp
public List<Evento> getLista1() {

		try {
            List<Evento> eventos = new ArrayList<Evento>();
            Evento evev =new Evento();
            PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement(SELECT `nome_colaborador` FROM `v_evento_col` WHERE id_evento = ?);
            stmt.setString(1, evev.getId_evento());
			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
			  Evento evento = new Evento();
			  evento.setNome_colaborador(rs.getString(nome_colaborador));
			  eventos.add(evento);
			}
            rs.close();
			stmt.close();
			return (eventos);
		} catch (SQLException e) {
			throw new RuntimeException(e);
	}

	}



Algum,a sugestão?
Valdemir Nunes

Valdemir Nunes

Responder

Posts

12/07/2012

Davi Costa

em qual ponto da aplicação vc vai ter escolhido essa entidade que possui id, vc pode jogar na requisição esse atributo e capturar no java ou usar onload da sua jsp, explioca melhor sua situação


att Davi
Responder

Gostei + 0

12/07/2012

Valdemir Nunes

É o seguinte tenho um jsp que exibe uma tabela que lista os vários eventos que estão no banco. Para actualizar um evento em particular existe um link, quando clicado redirecciona para uma página na qual existe o formulário de edição. Até aí tudo bem todas as informações são passadas para esse formulário para que possam ser alteradas. Porém para cada evento existem N colaboradores nesse caso preciso fazer o select de todos os colaboradores referente a esse evento para que possa ser populada a lista. veja:

JSP(lista eventos)

<tbody >
			      <c:forEach var=evento items=${dao.lista}>
				    <tr> <td>${evento.id_evento}</td>
					<td>${evento.nome_evento}</td>
					<td>${evento.nome_empresa}</td>
					<td>${evento.email}</td>
					<td> <fmt:formatDate value=${evento.getData_in().getTime()} pattern=dd/MM/yyyy /></td>
                                        <td> <fmt:formatDate value=${evento.getData_out().getTime()} pattern=dd/MM/yyyy /></td>
				   
				    <!-- passa dados para atualizar -->
				    <td><a href=AtualizaEvento.jsp?id_evento=${evento.id_evento}
				     &nome_evento=${evento.nome_evento}&email=${evento.email}&nome_empresa=${evento.nome_empresa}&  nome_colaborador=${evento.nome_colaborador}    
				     &data_in= <fmt:formatDate value=${evento.getData_in().getTime()} pattern=dd/MM/yyyy />
				     &data_out=<fmt:formatDate value=${evento.getData_out().getTime()} pattern=dd/MM/yyyy />>EDITAR</a></td> 
				     
				   </tr>


Repare que há todas as informações, exceto os colaboradores, pois são varios para um mesmo evento

Agora veja a pagina na qual serão mostradas essas informações:










<form id=form_437856 class=appnitro method=post action=>
			<div class=form_description>
				<h2>ATUALIZAR</h2>
				<p></p>
			</div>
			<ul>

				<li id=li_1><label class=description for=element_1>Evento:
				</label>
					<div>
						<input id=element_1 name=nome_evento
							class=element text medium type=text maxlength=255
							value=<%=request.getParameter(nome_evento)%> />
					</div></li>
				<li id=li_4><label class=description for=element_4>Email:
				</label>
					<div>
						<input id=element_4 name=nome_empresa
							class=element text medium type=text maxlength=255
							value=<%=request.getParameter(email)%> />
					</div></li>
				<li id=li_3><label class=description for=element_3>Empresa:
				</label>
					<div>
                           <input id=element_3 name=element_3 class=element text medium
							type=text maxlength=255
							value=<%=request.getParameter(nome_empresa)%> />


						<li id=li_2><label class=description for=element_2>Data
								IN: </label>
							<div>
								<!-- codigo na tag -->
								<caelum:data_in id=data_in />
							</div></li>

						<li id=li_5><label class=description for=element_5>Data
								OUT: </label>
							<div>
								<!-- codigo na tag -->
								<caelum:data_out id=data_out />
							</div></li>

						<li class=buttons><input type=hidden name=form_id
							value=437856 /> <input id=saveForm class=button_text
							type=submit name=submit value=Atualizar /></li>
			</ul>

		
                        <!-- essa é a lista que preciso popular, porém não sei como passar o id para aminha classe DAO fazer o select -->
			<div class=tabela>
				<table>
                                        <input type=hidden name=logica value=CadastraEvento />
					<input id=element_3 name=element_3 class=element text mediumtype=hidden maxlength=255
					 value=<%=request.getParameter(id_evento)%> />
				
					<th>Colaboradores</th>
					<tr>
					<td><c:forEach var=evento items=${dao.selectDAO()}>
                                             ${evento.nome_colaborador}<br>
                              </c:forEach> 
                        </div></td>
					</tr>
				</table>
			</div>
		</form>
		<div id=footer></div>
	</div>
	<img id=bottom src=form/bottom.png alt=>


</body>
</html>


Qual quer ajuda será bem vinda!!
Desde já agradeço!!
Responder

Gostei + 0

12/07/2012

Davi Costa

Ok, cria um atributo transiente (que não é coluna do banco de dados - vai ser só um auxiliar) do tipo boolean e dentro do seu loop na coluna inicial ou final (vai ficar a sua escolha) vc colca um campo checkbox para o suuário marcar os que ele quer.
Quando chamar o link ele vai identificar quais da lista estarão com esse atributo true.
Pode ser uma idéia espero ter ajudado

att Davi
Responder

Gostei + 0

17/07/2012

Valdemir Nunes

Olá!
Desculpe a demora, realmente estou com pouco tempo para entrar no forum.
Obrigado Davi pela ajuda.
Porém gostaria de perguntar se não há uma forma de fazer isso utilizando (JSP:forward), pois seria mauito mais fácil e sem complicação.
Alguém aí já utilizou para este fim.
Por gentileza, postem exemplos. Ficaria muito agradecido.
Responder

Gostei + 0

23/07/2012

Valdemir Nunes

Olá! estou de volta e ainda tentando resolver esse problema!
Desculpem não ter dado prosseguimento, realmente estou com tempo muito escasso trabalhando em mil coisas.
É o seguinte acredito que uma forma bastante fácil de passar o parâmetro para a minha lista seria via URL
veja o JSP
<a href=AtualizaEvento.jsp?Id_evento=${evento.id_evento}&logica=AtualizaEvento>EDITAR</a>


Agora recupero esse ID na minha página que exibe as informações e envio diretamente para a minha lista
Repare no outro JSP:

 <% String teste = request.getParameter(Id_evento); %>
		<%int num1 = Integer.parseInt(teste);  %>

<c:forEach var=evento items=${dao.selectDAO(num1)}>
             ${evento.nome_colaborador}




Mas aí é que vem o problema tenho erro na seguinte linha


<%int num1 = Integer.parseInt(teste);  %>


Veja o erro

java.lang.NumberFormatException: null

Sei que essa excessão é disparada quando tento converter para inteiro um valor null, porém se eu mandar imprimir a variavel (teste) ela de fato tem o (ID) que foi passado.

Alguém sabe como contornar esse problema?


Desde já agradeço a Atencão e boa vontade de todos

Fico no aguardo, qualquer solução será bemvinda
Responder

Gostei + 0

23/07/2012

Valdemir Nunes

Olá pessoal! Agradeço a todos!
Já consegui resolver, o problema era que eu estava tentando utilizar uma variavel criada com scriptlet, dentro da EL, porisso não enviava valor algum para minha servlet.
Apenas adcionei as seguintes linhas na minha jsp e pronto

<% String id_evento = ; id_evento = request.getParameter(Id_evento);
		            pageContext.setAttribute(id_evento, id_evento);   %>



Assim consegui passar o parametro para a lista veja:

<td><c:forEach var=evento items=${dao.getSelect(id_evento)}>
                ${evento.nome_colaborador}<br>
					</c:forEach>


Agradeço a colaboração! Abraço
Responder

Gostei + 0

24/07/2012

Davi Costa

Show de bola!
Muito bom postar sua solução, sucesso nos estudos

att Davi
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar