Bom dia JGirls and JMans…
O código abaixo é de uma Servlet que recebe uma requisição de uma JSP para verificar os pedidos de um cliente, retornar uma lista e mostrar os pedidos do mesmo… Porém, quando não há nenhum pedido para este cliente dá java.lang.IndexOutOfBoundsException: Index: 0, Size: 0…
Não estou sabendo onde nem com lançar uma exceção para tratar esse problema…
Caso alguém possa ajudar… Agradeço!!
Servlet
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
List<PedidosBean> lista = new ArrayList<PedidosBean>();
try {
PedidosBean bean = new PedidosBean();
PedidoBO bo = new PedidoBO();
int codigo = Integer.parseInt(request.getParameter("id"));
bean.setCodCliente(codigo);
lista = bo.listarPedidoCliente(bean);
request.setAttribute("listarPedidoCliente", lista);
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/pedidocliente.jsp");
dispatcher.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
BO
public List<PedidosBean> listarPedidoCliente(PedidosBean pedidos) {
return dao.listarPedidoCliente(pedidos);
}
DAO
public List<PedidosBean> listarPedidoCliente(PedidosBean pedidos) {
List<PedidosBean> list = new ArrayList<PedidosBean>();
Session session = factory.openSession();
if (session != null) {
try {
String sql = "from PedidosBean p where p.codCliente = :id";
Query query = session.createQuery(sql);
query.setInteger("id", pedidos.getCodCliente()).list().get(0);
list = query.list();
} finally {
// fecha a sessao
session.close();
}
} else {
throw new RuntimeException("Sessão Inválida.");
}
return list;
}