administracion.actions.OperacionesUsuarioAction.java Source code

Java tutorial

Introduction

Here is the source code for administracion.actions.OperacionesUsuarioAction.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package administracion.actions;

import administracion.modelo.Usuario;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.opensymphony.xwork2.ActionSupport;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

/**
 *
 * @author juang
 */
public class OperacionesUsuarioAction extends ActionSupport implements ServletRequestAware, ServletResponseAware {

    //Variables para gestionar la peticion
    private HttpServletRequest request;
    private HttpServletResponse response;
    private ServletOutputStream output;

    GestorOperacionesUsuario ga = new GestorOperacionesUsuario();

    private String navegacion; //Para gestionar la nevegacion del xml    

    @Override
    public String execute() throws Exception {

        //Obtenemos los datos del request
        String operacion = request.getParameter("operacion");
        String usuarioRequest = request.getParameter("usuario");

        int resultadoOperacion = 0;

        switch (operacion) {
        case "altaUsuario":
            //Reconstruimos el objeto JSON usuario del request
            Gson gson = new GsonBuilder().create();
            Usuario usuario = gson.fromJson(usuarioRequest, Usuario.class);

            //Realizamos la operacion
            resultadoOperacion = ga.insertarUsuario(usuario);

            try {
                montarVistaUsuarios(resultadoOperacion);
            } catch (IOException e) {
                System.out.println("OperacionesUsuarioAction. Error al montar la vista: " + e);
            }

            navegacion = null;

            break;

        case "bajaUsuario":
            //Realizamos la operacion
            resultadoOperacion = ga.eliminarUsuario(usuarioRequest);

            try {
                montarVistaUsuarios(resultadoOperacion);
            } catch (IOException e) {
                System.out.println("OperacionesUsuarioAction. Error al montar la vista: " + e);
            }

            navegacion = null;

            break;
        }

        return navegacion;
    }

    private void montarVistaUsuarios(int resultadoOperacion) throws IOException {
        try {
            //Obtenemos la lista de usuarios
            List<Usuario> listaUsuarios = ga.obtenerListaUsuarios();

            //Configuramos el objeto para response
            response.setContentType("text/html; charset=iso-8859-1");
            output = response.getOutputStream(); //Obtenemos una referencia al objeto que nos permite escribir en la respuesta del servlet                 

            if (listaUsuarios != null) { //Si hemos obtenido un listado de usuarios           
                switch (resultadoOperacion) {
                case 1:
                    output.print("<p>" + getText("usuario.success.realizarOperacion") + "</p>*");
                    break;
                case 2:
                    output.print("<p>" + getText("usuario.error.usuarioExiste") + "</p>*");
                    break;
                default:
                    output.print("<p>" + getText("usuario.error.realizarOperacion") + "</p>*");
                    break;
                }

                int nFila = 2; //La primera fila es la del admin
                for (Usuario user : listaUsuarios) {
                    output.print("<tr>");
                    output.print("<td>" + user.getUsuario() + "</td>");
                    output.print("<td>" + user.getPassword() + "</td>");
                    if (user.getRol().equals("admin")) {
                        output.print("<td></td>");
                    } else {
                        output.print(
                                "<td><button type='button' class='btn btn-danger has-spinner' onclick='bajaUsuarioSeleccionado("
                                        + user.getId() + "," + nFila++ + ")'>"
                                        + "<span class='spinner'><i class='glyphicon glyphicon-refresh spin'></i></span>"
                                        + "<span class='glyphicon glyphicon-trash'></span>" + "</button></td>");
                    }
                    output.print("</tr>");
                }
            } else { //Si ha habido algun error y listaUsuarios es null
                output.print("<p><strong style='color: red;'>" + getText("usuario.error.obtenerListaUsuarios")
                        + "</strong></p>");
            }
        } catch (Exception e) {
            System.out.println("OperacionesUsuarioAction. Error al montar la vista resultado: " + e);
            throw e;
        } finally {
            //Cerramos el flujo de respuesta del servlet
            output.flush();
            output.close();
        }
    }

    @Override
    public void setServletRequest(HttpServletRequest hsr) {
        this.request = hsr;
    }

    @Override
    public void setServletResponse(HttpServletResponse hsr) {
        this.response = hsr;
    }
}