Enviar parametro para um ArrayList
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
Algum,a sugestã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
Curtidas 0
Respostas
Davi Costa
11/07/2012
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
att Davi
GOSTEI 0
Valdemir Nunes
11/07/2012
É 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)
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:
Qual quer ajuda será bem vinda!!
Desde já agradeço!!
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!!
GOSTEI 0
Davi Costa
11/07/2012
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
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
GOSTEI 0
Valdemir Nunes
11/07/2012
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.
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.
GOSTEI 0
Valdemir Nunes
11/07/2012
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
Agora recupero esse ID na minha página que exibe as informações e envio diretamente para a minha lista
Repare no outro JSP:
Mas aí é que vem o problema tenho erro na seguinte linha
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
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
GOSTEI 0
Valdemir Nunes
11/07/2012
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
Assim consegui passar o parametro para a lista veja:
Agradeço a colaboração! Abraço
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
GOSTEI 0
Davi Costa
11/07/2012
Show de bola!
Muito bom postar sua solução, sucesso nos estudos
att Davi
Muito bom postar sua solução, sucesso nos estudos
att Davi
GOSTEI 0