Subversion Repositories WebE

Rev

Rev 26 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

1
package ch.ffhs.webE.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import ch.ffhs.webE.dao.UserDAO;
import ch.ffhs.webE.dao.UserDAOImpl;

import ch.ffhs.webE.domain.User;

public class UserAction extends ActionSupport implements ModelDriven<User>
{

    private static final long serialVersionUID = -6659925652584240539L;

    private User user = new User();
    private List<User> userList = new ArrayList<User>();
    private UserDAO userDAO = new UserDAOImpl();

    @Override
    public User getModel()
    {
        return user;
    }

    /**
     * Executes the DB query to save the user
     *
     * @return
     */

    public String addOrUpdate()
    {
        userDAO.saveOrUpdateUser(user);
        return SUCCESS;
    }

    /**
     * DB query for userList
     *
     * @return SUCCESS
     */

    public String list()
    {
        userList = userDAO.listUser();
        return SUCCESS;
    }

    public String edit()
    {
        int id = getIdParameter();

        if (id > 0)
        {
            user = userDAO.listUserById(id);
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }

    /**
     * Gets the ID Parameter for update / delete requests
     *
     * @return int from the ID request. If not set or wrong, it gives back -1
     */

    private int getIdParameter()
    {
        HttpServletRequest request = (HttpServletRequest) ActionContext
                .getContext().get(ServletActionContext.HTTP_REQUEST);

        int id = -1;
        try
        {
            id = Integer.parseInt(request.getParameter("id"));
        }
        catch (Exception e)
        {
            // TODO: Logging - wrong parameter set
        }

        return id;
    }

    /**
     * deletes a user, gets the ID from the "id" parameter that was submitted
     * with the HTTP request
     *
     * @return String - either SUCCESS or ERROR constant
     */

    public String delete()
    {

        int id = getIdParameter();

        // Check for malicious ID values
        if (id > 0)
        {
            userDAO.deleteUser(id);
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }

    /*
     * Standard getters and setters
     */


    public User getUser()
    {
        return user;
    }

    public void setUser(User user)
    {
        this.user = user;
    }

    public List<User> getUserList()
    {
        return userList;
    }

    public void setUserList(List<User> userList)
    {
        this.userList = userList;
    }
}