Example usage for org.springframework.validation BindException getTarget

List of usage examples for org.springframework.validation BindException getTarget

Introduction

In this page you can find the example usage for org.springframework.validation BindException getTarget.

Prototype

@Override
    public Object getTarget() 

Source Link

Usage

From source file:edu.wisc.my.stats.web.DynamicMultiPageFormController.java

/**
 * @see org.springframework.web.servlet.mvc.AbstractFormController#showForm(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.springframework.validation.BindException)
 *//*  ww  w. j  a  v  a 2  s.c  o m*/
@Override
protected final ModelAndView showForm(HttpServletRequest request, HttpServletResponse response,
        BindException errors) throws Exception {
    //Call showPage with the inital page
    final Object command = errors.getTarget();
    final int initialPage = this.getInitialPage(request, command);
    return this.showPage(request, errors, initialPage);
}

From source file:edu.wisc.my.stats.web.DynamicMultiPageFormController.java

protected final ModelAndView showPage(HttpServletRequest request, BindException errors, int page)
        throws Exception {
    //Check for valid page number
    final Object command = errors.getTarget();
    final int pageCount = this.getPageCount(request, command);
    if (page < 0 || page > pageCount) {
        throw new ServletException("Invalid wizard page number: " + page);
    }/*from w  w w . j a v  a  2s  .  co m*/

    //Set page number as request attribute
    this.addPageNumberToRequest(request, page, true);

    //Add page number to model
    final Map<Object, Object> controlModel = this.createControlModel(page);

    //Get the viewName (based on the current page)
    final String viewName = this.getViewName(request, errors.getTarget(), page);

    return this.showForm(request, errors, viewName, controlModel);
}

From source file:org.openmrs.web.controller.person.PersonFormController.java

/**
 * Redirects to the patient form if the given personId points to a patient.
 * /*from www  .j ava 2 s  .  c  om*/
 * @see org.springframework.web.servlet.mvc.SimpleFormController#showForm(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse, org.springframework.validation.BindException)
 */
@Override
protected ModelAndView showForm(HttpServletRequest request, HttpServletResponse response, BindException errors)
        throws Exception {
    Object person = errors.getTarget();
    if (person instanceof Patient) {
        Patient patient = (Patient) person;
        // Redirect if we are not already in the patient form
        if (!getFormView().contains("patient")) {
            return new ModelAndView(new RedirectView("../patients/patient.form?patientId=" + patient.getId()));
        }
    }

    return super.showForm(request, response, errors);
}

From source file:org.openmrs.web.controller.person.PersonFormController.java

/**
 * Redirects to the patient form if the given personId points to a patient.
 * /*from w w w  . j  a  va 2  s.com*/
 * @see org.springframework.web.servlet.mvc.SimpleFormController#showForm(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse, org.springframework.validation.BindException,
 *      java.util.Map)
 */
@Override
protected ModelAndView showForm(HttpServletRequest request, HttpServletResponse response, BindException errors,
        Map controlModel) throws Exception {
    Object person = errors.getTarget();
    if (person instanceof Patient) {
        Patient patient = (Patient) person;
        // Redirect if we are not already in the patient form
        if (!getFormView().contains("patient")) {
            return new ModelAndView(new RedirectView("../patients/patient.form?patientId=" + patient.getId()));
        }
    }

    return super.showForm(request, response, errors, controlModel);
}

From source file:com.asual.summer.core.ErrorResolver.java

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
        Exception e) {/*w w w . j a v a2 s.  com*/

    if (e instanceof BindException) {

        BindException be = (BindException) e;
        Map<String, Map<String, Object>> errors = new HashMap<String, Map<String, Object>>();

        for (FieldError fe : (List<FieldError>) be.getFieldErrors()) {
            Map<String, Object> error = new HashMap<String, Object>();
            Object[] args = fe.getArguments();
            String key = fe.isBindingFailure() ? fe.getCodes()[2].replaceFirst("typeMismatch", "conversion")
                    : "validation." + fe.getCodes()[2];
            String message = ResourceUtils.getMessage(key, args);
            if (message == null) {
                if (!fe.isBindingFailure()) {
                    if (key.split("\\.").length > 3) {
                        message = ResourceUtils
                                .getMessage(key.substring(0, key.indexOf(".", key.indexOf(".") + 1))
                                        + key.substring(key.lastIndexOf(".")), args);
                    }
                    if (message == null && key.split("\\.").length > 2) {
                        message = ResourceUtils
                                .getMessage(key.substring(0, key.indexOf(".", key.indexOf(".") + 1)), args);
                    }
                } else if (fe.isBindingFailure() && key.split("\\.").length > 2) {
                    message = ResourceUtils.getMessage(
                            key.substring(0, key.indexOf(".")) + key.substring(key.lastIndexOf(".")), args);
                } else {
                    message = fe.getDefaultMessage();
                }
            }
            error.put("message", message != null ? message : "Error (" + key + ")");
            error.put("value", fe.getRejectedValue());
            errors.put(fe.getField(), error);
        }

        for (ObjectError oe : (List<ObjectError>) be.getGlobalErrors()) {
            Map<String, Object> error = new HashMap<String, Object>();
            Object[] args = oe.getArguments();
            String key = "global" + (oe.getCodes() != null ? "." + oe.getCodes()[2] : "");
            String message = ResourceUtils.getMessage(key, args);
            if (message == null) {
                if (key.split("\\.").length > 3) {
                    message = ResourceUtils.getMessage(key.substring(0, key.indexOf(".", key.indexOf(".") + 1))
                            + key.substring(key.lastIndexOf(".")), args);
                }
                if (message == null && key.split("\\.").length > 2) {
                    message = ResourceUtils.getMessage(key.substring(0, key.indexOf(".", key.indexOf(".") + 1)),
                            args);
                }
                if (message == null) {
                    message = oe.getDefaultMessage();
                }
            }
            error.put("message", message != null ? message : "Error (" + key + ")");
            error.put("value", oe.getObjectName());
            errors.put(oe.getObjectName(), error);
        }

        String form = (String) RequestUtils.getParameter("_form");
        if (form != null) {
            if (request.getAttribute(ERRORS) == null) {
                request.setAttribute(ERRORS, errors);
                request.setAttribute(be.getObjectName(), be.getTarget());
                return new ModelAndView(new InternalResourceView(
                        form.concat(form.contains("?") ? "&" : "?").concat("_error=true")));
            }
        } else {
            List<String> pairs = new ArrayList<String>();
            for (String key : errors.keySet()) {
                pairs.add(key + "=" + errors.get(key).get("message"));
            }
            try {
                response.sendError(HttpServletResponse.SC_BAD_REQUEST, StringUtils.join(pairs, ";"));
            } catch (IOException ioe) {
                logger.error(ioe.getMessage(), ioe);
            }
        }
    }

    return null;
}

From source file:org.webcurator.ui.admin.controller.AgencyController.java

@Override
protected ModelAndView processFormSubmission(HttpServletRequest aReq, HttpServletResponse aRes, Object aCommand,
        BindException aError) throws Exception {

    ModelAndView mav = null;/*from   w  w w. j  a v  a  2s  . c  o  m*/
    AgencyCommand agencyCmd = (AgencyCommand) aCommand;
    if (agencyCmd != null) {
        if (aError.hasErrors()) {
            mav = new ModelAndView();
            mav = populateAgencyList();
            mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
            mav.addObject(Constants.GBL_ERRORS, aError);
            mav.setViewName("newAgency");

        } else if (AgencyCommand.ACTION_NEW.equals(agencyCmd.getActionCommand())) {
            //Display the Create Agency screen

            mav = populateAgencyList();
            mav.setViewName("newAgency");
        } else if (AgencyCommand.ACTION_SAVE.equals(agencyCmd.getActionCommand())) {
            //Save the new Agency details
            boolean update = false;
            Agency agency = new Agency();

            if (agencyCmd.getOid() != null) {
                update = true;
                agency.setOid(agencyCmd.getOid());
            }

            agency.setName(agencyCmd.getName());
            agency.setAddress(agencyCmd.getAddress());
            agency.setPhone(agencyCmd.getPhone());
            agency.setFax(agencyCmd.getFax());
            agency.setEmail(agencyCmd.getEmail());
            agency.setAgencyURL(agencyCmd.getAgencyURL());
            agency.setAgencyLogoURL(agencyCmd.getAgencyLogoURL());
            agency.setShowTasks(agencyCmd.getShowTasks());
            agency.setDefaultDescriptionType(agencyCmd.getDescriptionType());

            agencyUserManager.updateAgency(agency, update);
            mav = populateAgencyList();
            if (update == true) {
                mav.addObject(Constants.GBL_MESSAGES, messageSource.getMessage("agency.updated",
                        new Object[] { agencyCmd.getName() }, Locale.getDefault()));
            } else {
                mav.addObject(Constants.GBL_MESSAGES, messageSource.getMessage("agency.created",
                        new Object[] { agencyCmd.getName() }, Locale.getDefault()));
            }
        } else if (AgencyCommand.ACTION_VIEW.equals(agencyCmd.getActionCommand())
                || AgencyCommand.ACTION_EDIT.equals(agencyCmd.getActionCommand())) {

            Agency agency = agencyUserManager.getAgencyByOid(agencyCmd.getOid());
            AgencyCommand populatedCmd = new AgencyCommand();
            populatedCmd.setOid(agency.getOid());
            populatedCmd.setName(agency.getName());
            populatedCmd.setAddress(agency.getAddress());
            populatedCmd.setPhone(agency.getPhone());
            populatedCmd.setFax(agency.getFax());
            populatedCmd.setEmail(agency.getEmail());
            populatedCmd.setAgencyURL(agency.getAgencyURL());
            populatedCmd.setAgencyLogoURL(agency.getAgencyLogoURL());
            populatedCmd.setShowTasks(agency.getShowTasks());
            populatedCmd.setViewOnlyMode(AgencyCommand.ACTION_VIEW.equals(agencyCmd.getActionCommand()));
            populatedCmd.setDescriptionType(agency.getDefaultDescriptionType());

            mav = new ModelAndView();
            mav = populateAgencyList();
            mav.addObject(Constants.GBL_CMD_DATA, populatedCmd);
            mav.setViewName("newAgency");
        }
    } else {
        log.warn("No Action provided for AgencyController.");
        mav = populateAgencyList();
    }

    mav.addObject("descriptionTypes", typeList);
    return mav;
}

From source file:org.webcurator.ui.admin.controller.CreateFlagController.java

@Override
protected ModelAndView processFormSubmission(HttpServletRequest aReq, HttpServletResponse aRes, Object aCommand,
        BindException aError) throws Exception {

    ModelAndView mav = null;/*from  ww  w  .  j  a v a 2 s .c  o m*/
    CreateFlagCommand flagCmd = (CreateFlagCommand) aCommand;

    if (flagCmd != null) {
        if (aError.hasErrors()) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateFlagCommand.MDL_AGENCIES, agencies);

            String mode = flagCmd.getMode();
            if (CreateFlagCommand.ACTION_EDIT.equals(mode)) {
                mav.addObject(CreateFlagCommand.ACTION_EDIT, mode);
            }
            mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
            mav.addObject(Constants.GBL_ERRORS, aError);
            mav.setViewName("newFlag");

        } else if (CreateFlagCommand.ACTION_NEW.equals(flagCmd.getAction())) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateFlagCommand.MDL_AGENCIES, agencies);
            mav.setViewName("newFlag");

        } else if (CreateFlagCommand.ACTION_VIEW.equals(flagCmd.getAction())
                || CreateFlagCommand.ACTION_EDIT.equals(flagCmd.getAction())) {
            //View/Edit an existing flag
            mav = new ModelAndView();
            Long flagOid = flagCmd.getOid();
            Flag flag = agencyUserManager.getFlagByOid(flagOid);
            CreateFlagCommand editCmd = new CreateFlagCommand();
            editCmd.setOid(flagOid);
            editCmd.setAgencyOid(flag.getAgency().getOid());
            editCmd.setName(flag.getName());
            editCmd.setRgb(flag.getRgb());
            editCmd.setMode(flagCmd.getAction());

            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateFlagCommand.MDL_AGENCIES, agencies);
            mav.addObject(Constants.GBL_CMD_DATA, editCmd);
            mav.setViewName("newFlag");

        } else if (CreateFlagCommand.ACTION_SAVE.equals(flagCmd.getAction())) {

            try {
                Flag flag = new Flag();
                boolean update = (flagCmd.getOid() != null);
                if (update == true) {
                    // Update an existing flag object by loading it in first
                    flag = agencyUserManager.getFlagByOid(flagCmd.getOid());
                } else {
                    // Save the newly created flag object

                    //load Agency
                    Long agencyOid = flagCmd.getAgencyOid();
                    Agency agency = agencyUserManager.getAgencyByOid(agencyOid);
                    flag.setAgency(agency);
                }

                flag.setRgb(flagCmd.getRgb());
                String complementColour = null;
                if (flagCmd.getRgb().equals("000000")) {
                    complementColour = "ffffff";
                } else {
                    complementColour = getComplementColour(flagCmd.getRgb());
                }
                flag.setComplementRgb(complementColour);
                flag.setName(flagCmd.getName());

                agencyUserManager.updateFlag(flag, update);

                List flags = agencyUserManager.getFlagForLoggedInUser();
                List agencies = null;
                if (authorityManager.hasPrivilege(Privilege.MANAGE_FLAGS, Privilege.SCOPE_ALL)) {
                    agencies = agencyUserManager.getAgencies();
                } else {
                    User loggedInUser = AuthUtil.getRemoteUserObject();
                    Agency usersAgency = loggedInUser.getAgency();
                    agencies = new ArrayList<Agency>();
                    agencies.add(usersAgency);
                }

                mav = new ModelAndView();
                String message;
                if (update == true) {
                    message = messageSource.getMessage("flag.updated", new Object[] { flagCmd.getName() },
                            Locale.getDefault());
                } else {
                    message = messageSource.getMessage("flag.created", new Object[] { flagCmd.getName() },
                            Locale.getDefault());
                }
                String agencyFilter = (String) aReq.getSession().getAttribute(FlagCommand.MDL_AGENCYFILTER);
                if (agencyFilter == null) {
                    agencyFilter = AuthUtil.getRemoteUserObject().getAgency().getName();
                }
                mav.addObject(FlagCommand.MDL_AGENCYFILTER, agencyFilter);
                mav.addObject(FlagCommand.MDL_LOGGED_IN_USER, AuthUtil.getRemoteUserObject());
                mav.addObject(FlagCommand.MDL_FLAGS, flags);
                mav.addObject(FlagCommand.MDL_AGENCIES, agencies);

                mav.addObject(Constants.GBL_MESSAGES, message);

                mav.setViewName("viewFlags");
            } catch (DataAccessException e) {
                e.printStackTrace();
            }

        }
    } else {
        log.warn("No Action provided for CreateFlagController.");
    }

    return mav;
}

From source file:org.webcurator.ui.admin.controller.CreateQaIndicatorController.java

@Override
protected ModelAndView processFormSubmission(HttpServletRequest aReq, HttpServletResponse aRes, Object aCommand,
        BindException aError) throws Exception {

    ModelAndView mav = null;/*from  www  .  j a  v  a 2 s.c  om*/
    CreateQaIndicatorCommand indicatorCmd = (CreateQaIndicatorCommand) aCommand;

    if (indicatorCmd != null) {
        if (aError.hasErrors()) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateQaIndicatorCommand.MDL_AGENCIES, agencies);
            mav.addObject(CreateQaIndicatorCommand.MDL_UNITS, IndicatorCriteria.UNITS);

            String mode = indicatorCmd.getMode();
            if (CreateQaIndicatorCommand.ACTION_EDIT.equals(mode)) {
                mav.addObject(CreateQaIndicatorCommand.ACTION_EDIT, mode);
            }
            mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
            mav.addObject(Constants.GBL_ERRORS, aError);
            mav.setViewName("newIndicator");

        } else if (CreateQaIndicatorCommand.ACTION_NEW.equals(indicatorCmd.getAction())) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateQaIndicatorCommand.MDL_AGENCIES, agencies);
            mav.addObject(CreateQaIndicatorCommand.MDL_UNITS, IndicatorCriteria.UNITS);
            mav.setViewName("newIndicator");

        } else if (CreateQaIndicatorCommand.ACTION_VIEW.equals(indicatorCmd.getAction())
                || CreateQaIndicatorCommand.ACTION_EDIT.equals(indicatorCmd.getAction())) {
            //View/Edit an existing indicator
            mav = new ModelAndView();
            Long indicatorOid = indicatorCmd.getOid();
            IndicatorCriteria indicator = agencyUserManager.getIndicatorCriteriaByOid(indicatorOid);
            CreateQaIndicatorCommand editCmd = new CreateQaIndicatorCommand();
            editCmd.setOid(indicatorOid);
            editCmd.setAgencyOid(indicator.getAgency().getOid());
            editCmd.setName(indicator.getName());
            editCmd.setDescription(indicator.getDescription());
            editCmd.setUpperLimit(indicator.getUpperLimit());
            editCmd.setLowerLimit(indicator.getLowerLimit());
            editCmd.setUpperLimitPercentage(indicator.getUpperLimitPercentage());
            editCmd.setLowerLimitPercentage(indicator.getLowerLimitPercentage());
            editCmd.setUnit(indicator.getUnit());
            editCmd.setShowDelta(indicator.getShowDelta());
            editCmd.setEnableReport(indicator.getEnableReport());
            editCmd.setMode(indicatorCmd.getAction());

            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateQaIndicatorCommand.MDL_AGENCIES, agencies);
            mav.addObject(CreateQaIndicatorCommand.MDL_UNITS, IndicatorCriteria.UNITS);
            mav.addObject(Constants.GBL_CMD_DATA, editCmd);
            mav.setViewName("newIndicator");

        } else if (CreateQaIndicatorCommand.ACTION_SAVE.equals(indicatorCmd.getAction())) {

            try {
                IndicatorCriteria indicator = new IndicatorCriteria();
                boolean update = (indicatorCmd.getOid() != null);
                if (update == true) {
                    // Update an existing indicator object by loading it in first
                    indicator = agencyUserManager.getIndicatorCriteriaByOid(indicatorCmd.getOid());
                } else {
                    // Save the newly created indicator object

                    //load Agency
                    Long agencyOid = indicatorCmd.getAgencyOid();
                    Agency agency = agencyUserManager.getAgencyByOid(agencyOid);
                    indicator.setAgency(agency);
                }

                indicator.setName(indicatorCmd.getName());
                indicator.setDescription(indicatorCmd.getDescription());
                indicator.setUpperLimit(indicatorCmd.getUpperLimit());
                indicator.setLowerLimit(indicatorCmd.getLowerLimit());
                indicator.setUpperLimitPercentage(indicatorCmd.getUpperLimitPercentage());
                indicator.setLowerLimitPercentage(indicatorCmd.getLowerLimitPercentage());

                indicator.setUnit(indicatorCmd.getUnit());
                Boolean showDelta = indicatorCmd.getShowDelta();
                if (showDelta == null)
                    showDelta = false;
                indicator.setShowDelta(showDelta);
                Boolean enableReport = indicatorCmd.getEnableReport();
                if (enableReport == null)
                    enableReport = false;
                indicator.setEnableReport(enableReport);

                agencyUserManager.updateIndicatorCriteria(indicator, update);

                List indicators = agencyUserManager.getIndicatorCriteriaForLoggedInUser();
                List agencies = null;
                if (authorityManager.hasPrivilege(Privilege.MANAGE_INDICATORS, Privilege.SCOPE_ALL)) {
                    agencies = agencyUserManager.getAgencies();
                } else {
                    User loggedInUser = AuthUtil.getRemoteUserObject();
                    Agency usersAgency = loggedInUser.getAgency();
                    agencies = new ArrayList<Agency>();
                    agencies.add(usersAgency);
                }

                mav = new ModelAndView();
                String message;
                if (update == true) {
                    message = messageSource.getMessage("indicator.updated",
                            new Object[] { indicatorCmd.getName() }, Locale.getDefault());
                } else {
                    message = messageSource.getMessage("indicator.created",
                            new Object[] { indicatorCmd.getName() }, Locale.getDefault());
                }
                String agencyFilter = (String) aReq.getSession()
                        .getAttribute(QaIndicatorCommand.MDL_AGENCYFILTER);
                if (agencyFilter == null) {
                    agencyFilter = AuthUtil.getRemoteUserObject().getAgency().getName();
                }
                mav.addObject(QaIndicatorCommand.MDL_AGENCYFILTER, agencyFilter);
                mav.addObject(QaIndicatorCommand.MDL_LOGGED_IN_USER, AuthUtil.getRemoteUserObject());
                mav.addObject(QaIndicatorCommand.MDL_QA_INDICATORS, indicators);
                mav.addObject(QaIndicatorCommand.MDL_AGENCIES, agencies);
                mav.addObject(CreateQaIndicatorCommand.MDL_UNITS, IndicatorCriteria.UNITS);

                mav.addObject(Constants.GBL_MESSAGES, message);

                mav.setViewName("viewIndicators");
            } catch (DataAccessException e) {
                e.printStackTrace();
            }

        }
    } else {
        log.warn("No Action provided for CreateQaIndicatorController.");
    }

    return mav;
}

From source file:org.webcurator.ui.admin.controller.CreateRejReasonController.java

@Override
protected ModelAndView processFormSubmission(HttpServletRequest aReq, HttpServletResponse aRes, Object aCommand,
        BindException aError) throws Exception {

    ModelAndView mav = null;/*from   w  w w.  ja  v  a 2s  . c o m*/
    CreateRejReasonCommand reasonCmd = (CreateRejReasonCommand) aCommand;

    if (reasonCmd != null) {
        if (aError.hasErrors()) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateRejReasonCommand.MDL_AGENCIES, agencies);
            String mode = reasonCmd.getMode();
            if (CreateRejReasonCommand.ACTION_EDIT.equals(mode)) {
                mav.addObject(CreateRejReasonCommand.ACTION_EDIT, mode);
            }
            mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
            mav.addObject(Constants.GBL_ERRORS, aError);
            mav.setViewName("newReason");

        } else if (CreateRejReasonCommand.ACTION_NEW.equals(reasonCmd.getAction())) {
            mav = new ModelAndView();
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateRejReasonCommand.MDL_AGENCIES, agencies);
            mav.setViewName("newReason");

        } else if (CreateRejReasonCommand.ACTION_VIEW.equals(reasonCmd.getAction())
                || CreateRejReasonCommand.ACTION_EDIT.equals(reasonCmd.getAction())) {
            //View/Edit an existing reason
            mav = new ModelAndView();
            Long reasonOid = reasonCmd.getOid();
            RejReason reason = agencyUserManager.getRejReasonByOid(reasonOid);
            CreateRejReasonCommand editCmd = new CreateRejReasonCommand();
            editCmd.setOid(reasonOid);
            editCmd.setAgencyOid(reason.getAgency().getOid());
            editCmd.setName(reason.getName());
            editCmd.setAvailableForTargets(reason.isAvailableForTargets());
            editCmd.setAvailableForTIs(reason.isAvailableForTIs());
            editCmd.setMode(reasonCmd.getAction());

            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateRejReasonCommand.MDL_AGENCIES, agencies);
            mav.addObject(Constants.GBL_CMD_DATA, editCmd);
            mav.setViewName("newReason");

        } else if (CreateRejReasonCommand.ACTION_SAVE.equals(reasonCmd.getAction())) {

            try {
                RejReason reason = new RejReason();
                boolean update = (reasonCmd.getOid() != null);
                if (update == true) {
                    // Update an existing reason object by loading it in first
                    reason = agencyUserManager.getRejReasonByOid(reasonCmd.getOid());
                } else {
                    // Save the newly created reason object

                    //load Agency
                    Long agencyOid = reasonCmd.getAgencyOid();
                    Agency agency = agencyUserManager.getAgencyByOid(agencyOid);
                    reason.setAgency(agency);
                }

                reason.setAvailableForTargets(reasonCmd.isAvailableForTargets());
                reason.setAvailableForTIs(reasonCmd.isAvailableForTIs());
                reason.setName(reasonCmd.getName());

                agencyUserManager.updateRejReason(reason, update);

                List reasons = agencyUserManager.getRejReasonsForLoggedInUser();
                List agencies = null;
                if (authorityManager.hasPrivilege(Privilege.MANAGE_REASONS, Privilege.SCOPE_ALL)) {
                    agencies = agencyUserManager.getAgencies();
                } else {
                    User loggedInUser = AuthUtil.getRemoteUserObject();
                    Agency usersAgency = loggedInUser.getAgency();
                    agencies = new ArrayList<Agency>();
                    agencies.add(usersAgency);
                }

                mav = new ModelAndView();
                String message;
                if (update == true) {
                    message = messageSource.getMessage("reason.updated", new Object[] { reasonCmd.getName() },
                            Locale.getDefault());
                } else {
                    message = messageSource.getMessage("reason.created", new Object[] { reasonCmd.getName() },
                            Locale.getDefault());
                }
                String agencyFilter = (String) aReq.getSession()
                        .getAttribute(RejReasonCommand.MDL_AGENCYFILTER);
                if (agencyFilter == null) {
                    agencyFilter = AuthUtil.getRemoteUserObject().getAgency().getName();
                }
                mav.addObject(RejReasonCommand.MDL_AGENCYFILTER, agencyFilter);
                mav.addObject(RejReasonCommand.MDL_LOGGED_IN_USER, AuthUtil.getRemoteUserObject());
                mav.addObject(RejReasonCommand.MDL_REASONS, reasons);
                mav.addObject(RejReasonCommand.MDL_AGENCIES, agencies);
                mav.addObject(Constants.GBL_MESSAGES, message);

                mav.setViewName("viewReasons");
            } catch (DataAccessException e) {
                mav = new ModelAndView();
                List agencies = agencyUserManager.getAgenciesForLoggedInUser();
                mav.addObject(CreateRejReasonCommand.MDL_AGENCIES, agencies);
                String mode = reasonCmd.getMode();
                if (CreateRejReasonCommand.ACTION_EDIT.equals(mode)) {
                    mav.addObject(CreateRejReasonCommand.ACTION_EDIT, mode);
                }
                aError.reject("user.duplicate");
                mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
                mav.addObject(Constants.GBL_ERRORS, aError);
                mav.setViewName("newReason");
            }

        }
    } else {
        log.warn("No Action provided for CreateRejReasonController.");
    }

    return mav;
}

From source file:org.webcurator.ui.admin.controller.CreateUserController.java

@Override
protected ModelAndView processFormSubmission(HttpServletRequest aReq, HttpServletResponse aRes, Object aCommand,
        BindException aError) throws Exception {

    CreateUserCommand userCmd = (CreateUserCommand) aCommand;

    ModelAndView mav = new ModelAndView();
    mav.addObject(UserCommand.MDL_LOGGED_IN_USER, AuthUtil.getRemoteUserObject());
    if (userCmd != null) {
        if (aError.hasErrors()) {
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();

            mav.addObject(CreateUserCommand.MDL_AGENCIES, agencies);
            String mode = userCmd.getMode();
            if (CreateUserCommand.ACTION_EDIT.equals(mode)) {
                mav.addObject(CreateUserCommand.ACTION_EDIT, mode);
            }/*from ww  w. ja  v a 2 s.co m*/
            mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
            mav.addObject(Constants.GBL_ERRORS, aError);
            mav.setViewName("newUser");

        } else if (CreateUserCommand.ACTION_NEW.equals(userCmd.getAction())) {
            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateUserCommand.MDL_AGENCIES, agencies);
            mav.setViewName("newUser");

        } else if (CreateUserCommand.ACTION_VIEW.equals(userCmd.getAction())
                || CreateUserCommand.ACTION_EDIT.equals(userCmd.getAction())) {
            //View/Edit an existing user
            Long userOid = userCmd.getOid();
            User user = agencyUserManager.getUserByOid(userOid);
            CreateUserCommand editCmd = new CreateUserCommand();
            editCmd.setOid(userOid);
            editCmd.setActive(user.isActive());
            editCmd.setAddress(user.getAddress());
            editCmd.setAgencyOid(user.getAgency().getOid());
            editCmd.setUsername(user.getUsername());
            editCmd.setFirstname(user.getFirstname());
            editCmd.setLastname(user.getLastname());
            editCmd.setTitle(user.getTitle());
            editCmd.setPhone(user.getPhone());
            editCmd.setEmail(user.getEmail());
            editCmd.setNotificationsByEmail(user.isNotificationsByEmail());
            editCmd.setTasksByEmail(user.isTasksByEmail());
            editCmd.setExternalAuth(user.isExternalAuth());
            editCmd.setNotifyOnGeneral(user.isNotifyOnGeneral());
            editCmd.setNotifyOnHarvestWarnings(user.isNotifyOnHarvestWarnings());
            editCmd.setMode(userCmd.getAction());

            List agencies = agencyUserManager.getAgenciesForLoggedInUser();
            mav.addObject(CreateUserCommand.MDL_AGENCIES, agencies);
            List assignedRoles = agencyUserManager.getAssociatedRolesForUser(userCmd.getOid());
            mav.addObject(CreateUserCommand.MDL_ASSIGNED_ROLES, assignedRoles);
            mav.addObject(Constants.GBL_CMD_DATA, editCmd);
            mav.setViewName("newUser");

        } else if (CreateUserCommand.ACTION_SAVE.equals(userCmd.getAction())) {

            try {
                User user = new User();
                boolean update = (userCmd.getOid() != null);
                if (update == true) {
                    // Update an existing user object by loading it in first
                    user = agencyUserManager.getUserByOid(userCmd.getOid());
                } else {
                    //                  Save the newly created User object
                    user.setActive(true);

                    //load Agency
                    Long agencyOid = userCmd.getAgencyOid();
                    Agency agency = agencyUserManager.getAgencyByOid(agencyOid);
                    user.setAgency(agency);

                    user.setExternalAuth(userCmd.isExternalAuth());

                    //                  Only set the password for WCT Authenticating users
                    if (userCmd.isExternalAuth() == false) {
                        String pwd = userCmd.getPassword();
                        String encodedPwd = passwordEncoder.encodePassword(pwd, saltSource.getSystemWideSalt());
                        user.setPassword(encodedPwd);
                        //                      force a password change only for WCT users, not LDAP users
                        user.setForcePasswordChange(true);
                    }

                    user.setRoles(null);
                }

                user.setAddress(userCmd.getAddress());
                user.setEmail(userCmd.getEmail());
                user.setFirstname(userCmd.getFirstname());
                user.setLastname(userCmd.getLastname());
                user.setNotificationsByEmail(userCmd.isNotificationsByEmail());
                user.setTasksByEmail(userCmd.isTasksByEmail());
                user.setPhone(userCmd.getPhone());
                user.setTitle(userCmd.getTitle());
                user.setUsername(userCmd.getUsername());
                user.setNotifyOnGeneral(userCmd.isNotifyOnGeneral());
                user.setNotifyOnHarvestWarnings(userCmd.isNotifyOnHarvestWarnings());

                agencyUserManager.updateUser(user, update);

                List userDTOs = agencyUserManager.getUserDTOsForLoggedInUser();
                List agencies = null;
                if (authorityManager.hasPrivilege(Privilege.MANAGE_USERS, Privilege.SCOPE_ALL)) {
                    agencies = agencyUserManager.getAgencies();
                } else {
                    User loggedInUser = AuthUtil.getRemoteUserObject();
                    Agency usersAgency = loggedInUser.getAgency();
                    agencies = new ArrayList<Agency>();
                    agencies.add(usersAgency);
                }

                String message;
                if (update == true) {
                    message = messageSource.getMessage("user.updated", new Object[] { userCmd.getUsername() },
                            Locale.getDefault());
                } else {
                    message = messageSource.getMessage("user.created", new Object[] { userCmd.getUsername() },
                            Locale.getDefault());
                }
                String agencyFilter = (String) aReq.getSession().getAttribute(UserCommand.MDL_AGENCYFILTER);
                if (agencyFilter == null) {
                    agencyFilter = AuthUtil.getRemoteUserObject().getAgency().getName();
                }
                mav.addObject(UserCommand.MDL_AGENCYFILTER, agencyFilter);
                mav.addObject(UserCommand.MDL_USERS, userDTOs);
                mav.addObject(UserCommand.MDL_AGENCIES, agencies);
                mav.addObject(Constants.GBL_MESSAGES, message);

                mav.setViewName("viewUsers");
            } catch (DataAccessException e) {
                List agencies = agencyUserManager.getAgenciesForLoggedInUser();
                mav.addObject(CreateUserCommand.MDL_AGENCIES, agencies);
                String mode = userCmd.getMode();
                if (CreateUserCommand.ACTION_EDIT.equals(mode)) {
                    mav.addObject(CreateUserCommand.ACTION_EDIT, mode);
                }
                aError.reject("user.duplicate");
                mav.addObject(Constants.GBL_CMD_DATA, aError.getTarget());
                mav.addObject(Constants.GBL_ERRORS, aError);
                mav.setViewName("newUser");
            }

        }
    } else {
        log.warn("No Action provided for CreateUserController.");
        return null;
    }

    return mav;
}