/* * ListInformes.java * * Proyecto Fin de Carrera 2002/2003 * GESTION DE INFORMES DE ALTA CON TECNOLOGIA JAVA * Y BASE DE DATOS XML NATIVAS */ package InformeAlta; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import java.net.*; /** * @author Irene Lavado Gomez */ /** * Definimos la clase ListInformes, esta clase sera la encargada * de mostrar una lista con todos los pacientes almacenados en la base * de datos, o de mostrar un mensaje en caso de que la base de datos esté * vacia */ public class ListInformes extends Action { public boolean list(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { Collection col = null; try { // Consigue una referencia de la sesión HttpSession session = request.getSession(true); // Consigue una instancia collecion col = getCollection(request,response); // Recurea la instancia de Group para esta sesión Group group = (Group)session.getAttribute("group"); XPathQueryService service = (XPathQueryService)col.getService("XPathQueryService",XMLDBAPIVERSION); // Consigue todos los elementos informe de la base de datos ResourceSet resultSet = service.query("/informe"); ResourceIterator results = resultSet.getIterator(); // Limpia el objeto group... group.removeAll(); // Añade los resultados de la búsqueda Xpath a la instancia Group group.addResults(results); } catch (Exception e) { e.printStackTrace(); // Si la respuesta es committed no hay mucho más que se pueda hacer if (response.isCommitted()) return true; // Toma la excepción y envia al usuario a la página de error if (e.getMessage() != null ) { response.sendRedirect("/InformeAlta/error.jsp?error=" + URLEncoder.encode(e.getMessage()) ); } else { response.sendRedirect("/InformeAlta/error.jsp" ); } } return true; } }