Example usage for org.springframework.validation BindException rejectValue

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

Introduction

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

Prototype

@Override
    public void rejectValue(@Nullable String field, String errorCode, @Nullable Object[] errorArgs,
            @Nullable String defaultMessage) 

Source Link

Usage

From source file:net.java.javamoney.examples.tradingapp.web.TradeFormController.java

protected void onBind(HttpServletRequest request, Object command, BindException errors) {

    Trade trade = (Trade) command;/*w w  w.j  a va2  s  . c  o  m*/

    if (symbolIsInvalid(trade.getSymbol())) {
        errors.rejectValue("symbol", "error.trade.invalid-symbol", new Object[] { trade.getSymbol() },
                "Invalid ticker symbol.");
    } else {
        Quote quote = null;
        try {
            quote = quoteFactory.getQuote(trade.getSymbol());
        } catch (QuoteException e) {
            throw new RuntimeException(e);
        }
        trade.setPrice(Amount.valueOf(quote.getValue(), portfolio.getCurrency()));
        trade.setSymbol(trade.getSymbol().toUpperCase());
    }
}

From source file:com.jklas.sample.petclinic.web.FindOwnersForm.java

/**
 * Method used to search for owners renders View depending on how many are
 * found/*ww  w . j  av a  2  s .  c  o m*/
 */
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws Exception {

    Owner owner = (Owner) command;
    // find owners by last name
    Collection results = getClinic().findOwners(owner.getLastName());
    if (results.size() < 1) {
        // no owners found
        errors.rejectValue("lastName", "notFound", null, "not found");
        return showForm(request, response, errors);
    }

    if (results.size() > 1) {
        // multiple owners found
        return new ModelAndView(this.selectView, "selections", results);
    }

    // 1 owner found
    owner = (Owner) results.iterator().next();
    return new ModelAndView(getSuccessView(), "ownerId", owner.getId());

}

From source file:org.tsm.concharto.web.forgot.ForgotController.java

@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws Exception {
    ForgotForm forgotForm = (ForgotForm) command;
    User user = userDao.find(forgotForm.getUsername());

    /* Verify the username exists
      * NOTE we are doing validation here instead of the validator so that we don't have to 
      * go to the database twice to get the user object.
      *///from ww  w  .j  a v a2s .  co m
    if (null == user) {
        //tell the user there was a problem 
        errors.rejectValue("username", "invalidUser.forgotForm.username",
                new Object[] { forgotForm.getUsername() }, null);
        return new ModelAndView(getFormView(), errors.getModel());
    }
    //generate a retrieval key and save it in the user object
    String key = PasswordUtil.encrypt(forgotForm.getUsername() + Long.toString(System.currentTimeMillis()));
    if (null != user.getUserNote()) {
        user.getUserNote().setPasswordRetrievalKey(key);
    } else {
        UserNote userNote = new UserNote();
        userNote.setPasswordRetrievalKey(key);
        user.setUserNote(userNote);
    }
    userDao.save(user);

    //create a link back 
    //first url encode the key
    key = urlEncode(key);
    StringBuffer resetLink = new StringBuffer(UrlFormat.getBasepath(request)).append("reset.htm?key=")
            .append(key);

    //send the notification email 
    MimeMessage message = emailService.createMimeMessage();
    ConfirmationEmail.makeForgotPassowrdMessage(message, user, resetLink.toString());
    emailService.sendMessage(message);

    return super.onSubmit(request, response, command, errors);
}

From source file:org.zilverline.web.SearchController.java

/**
 * Callback function that processes the form submission. It searches over all provided collections, and returns Results into
 * model./*from w  w  w .ja  va  2s.  c  o  m*/
 * 
 * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
 */
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws ServletException {
    SearchForm theForm = (SearchForm) command;
    String queryString = theForm.getQuery();
    int maxResults = theForm.getMaxResults();
    int startAt = theForm.getStartAt() - 1;
    try {
        CollectionTriple[] collections = theForm.getCollections();
        // get the names of selected collections
        String[] selectedNames = new String[] {};
        if (collections != null) {
            List selectedCollectionsList = new ArrayList();
            log.debug("Form mapped via CustomCollectionEditor with collections: " + collections + " of length "
                    + collections.length);
            for (int i = 0; i < collections.length; i++) {
                if (collections[i].isSelected()) {
                    selectedCollectionsList.add(collections[i].getName());
                }
                log.debug(collections[i].getName() + ", " + collections[i].getId() + ", "
                        + collections[i].isSelected());
            }
            selectedNames = (String[]) selectedCollectionsList.toArray(selectedNames);
        } else {
            setAllCollectionsSelected(theForm);
        }

        log.debug("Form called for collections '" + StringUtils.arrayToCommaDelimitedString(selectedNames)
                + "', with query '" + queryString + "', with maxResults '" + maxResults + "', starting at "
                + startAt);
        SearchResult result = new SearchResult(null, maxResults, startAt, startAt + maxResults);
        try {
            result = service.doSearch(selectedNames, queryString, startAt, maxResults);
        } catch (SearchException e) {
            log.error("Error executing query '" + queryString + "', " + e);
            errors.rejectValue("query", "errors.invalidquery", null, e.getLocalizedMessage());
        }
        // TODO SearchResult could be a map
        Map model = new HashMap();
        model.put("results", result.getResults());
        model.put("hits", new Integer(result.getNumberOfHits()));
        model.put("startAt", new Integer(result.getStartAt()));
        model.put("endAt", new Integer(result.getEndAt()));

        // create a ModelAndView that submits to original view
        // keeping the command, adding the model
        log.debug("returning to view: " + getSuccessView() + " with " + result.getNumberOfHits() + " hits");

        return showForm(request, errors, getSuccessView(), model);
    } catch (Exception e) {
        log.error("Error executing query '" + queryString + "', " + e);
        throw new ServletException("Error executing query '" + queryString + "'", e);
    }
}

From source file:org.zilverline.web.SearchDefaultsController.java

/**
 * Method updates an existing SearchService.
 * /*from  ww  w .j av a 2  s.c om*/
 * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
 */
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws ServletException {
    // get keys and values for BoostFactors
    Map reqMap = request.getParameterMap();
    Iterator iter = reqMap.entrySet().iterator();
    String[] values = new String[reqMap.size()];
    String[] fields = new String[reqMap.size()];
    String prefix = "field_";
    // find corresponding field, value pairs, they have matching numbers as
    // parameter names (field_#,#) (# is a number)
    while (iter.hasNext()) {
        Map.Entry element = (Map.Entry) iter.next();
        String key = (String) element.getKey();
        String value = ((String[]) element.getValue())[0];
        log.debug("Parsing request for: " + key + ", " + value);
        try {
            if (key.startsWith(prefix)) {
                // this is a field named field_#
                String indexStr = key.substring(prefix.length());
                int index = Integer.parseInt(indexStr);
                log.debug("Adding " + value + " to fields[" + index + "]");
                fields[index] = value;
            } else {
                // this could be a value named #
                int index = Integer.parseInt(key);
                log.debug("Adding " + value + " to values[" + index + "]");
                values[index] = value;
            }
        } catch (NumberFormatException e) {
            // not an extractor related requestParameter
            log.debug("Skipping " + key + ", " + value);
        }
    }
    // add the key value pairs to Map, if field and value contains value
    Map props = new Properties();
    for (int i = 0; i < fields.length; i++) {
        if (StringUtils.hasLength(fields[i]) && StringUtils.hasLength(values[i])) {
            log.debug("Adding " + fields[i] + "=" + values[i] + " to map");
            props.put(fields[i], values[i]);
            // validate the value
            try {
                float f = Float.parseFloat(values[i]);
            } catch (NumberFormatException e) {
                log.debug("value must be a float: " + values[i]);
                errors.rejectValue("factors", "error.notapositivenumber", null, "must be a float.");
                // TODO this is not great, and it does not show error.
                // OnBindAndValidate?
                return new ModelAndView(getSuccessView());
            }

        } else {
            log.debug("Skipping (remove) " + fields[i] + "=" + values[i] + " from map");
        }
    }
    if (service.getFactors() != null) {
        service.getFactors().setFactors(props);
    } else {
        // TODO: this is funny,and should not occur, prevent this from happening somewhere else
        log.warn("SearchService should have Boostfactors, creating new");
        service.setFactors(new BoostFactor());
        service.getFactors().setFactors(props);
    }

    try {
        service.store();
    } catch (SearchException e) {
        throw new ServletException("Error storing new Search Defaults", e);
    }
    return new ModelAndView(getSuccessView());
}

From source file:gov.nih.nci.cabig.caaers.web.user.ChangePasswordController.java

@Override
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
    ModelAndView modelAndView = new ModelAndView(getFormView(), errors.getModel());
    ChangePasswordCommand cmd = (ChangePasswordCommand) command;
    try {/* ww w.  j ava 2s.  c o m*/
        passwordManagerService.setPassword(cmd.getUserName(), cmd.confirmedPassword(), cmd.getToken());
        return modelAndView.addObject("updated", true);
    } catch (PasswordCreationPolicyException e) {
        for (ValidationError vError : e.getErrors().getErrors()) {
            errors.reject(vError.getCode(), vError.getReplacementVariables(), vError.getMessage());
        }
        return modelAndView.addObject("change_pwd_error", e.getErrors());
    } catch (CaaersNoSuchUserException e) {
        errors.rejectValue("userName", "USR_015", new Object[] { cmd.getUserName() }, "Username is invalid.");
        return modelAndView;
    } catch (CaaersSystemException e) {
        errors.reject("USR_016", "Invalid token.");
        return modelAndView;
    }
}

From source file:org.openmrs.web.controller.patient.NewPatientFormController.java

protected ModelAndView processFormSubmission(HttpServletRequest request, HttpServletResponse response,
        Object obj, BindException errors) throws Exception {

    newIdentifiers = new HashSet<PatientIdentifier>();

    ShortPatientModel shortPatient = (ShortPatientModel) obj;

    log.debug("\nNOW GOING THROUGH PROCESSFORMSUBMISSION METHOD.......................................\n\n");

    if (Context.isAuthenticated()) {
        PatientService ps = Context.getPatientService();
        MessageSourceAccessor msa = getMessageSourceAccessor();

        String action = request.getParameter("action");
        if (action == null || action.equals(msa.getMessage("general.save"))) {
            ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name.familyName", "error.name");

            String[] identifiers = request.getParameterValues("identifier");
            String[] types = request.getParameterValues("identifierType");
            String[] locs = request.getParameterValues("location");
            pref = request.getParameter("preferred");
            if (pref == null)
                pref = "";

            if (log.isDebugEnabled()) {
                log.debug("identifiers: " + identifiers);
                for (String s : identifiers)
                    log.debug(s);/*  w w  w .j ava  2 s. c  o  m*/
                log.debug("types: " + types);
                for (String s : types)
                    log.debug(s);
                log.debug("locations: " + locs);
                for (String s : locs)
                    log.debug(s);
                log.debug("preferred: " + pref);
            }

            // loop over the identifiers to create the patient.identifiers set
            if (identifiers != null) {
                for (int i = 0; i < identifiers.length; i++) {
                    // arguments for the spring error messages
                    String id = identifiers[i].trim();
                    String[] args = { id };

                    // add the new identifier only if they put in some identifier string
                    if (id.length() > 0) {

                        // set up the actual identifier java object
                        PatientIdentifierType pit = null;
                        if (types[i] == null || types[i].equals("")) {
                            String msg = getMessageSourceAccessor()
                                    .getMessage("PatientIdentifier.identifierType.null", args);
                            errors.reject(msg);
                        } else
                            pit = ps.getPatientIdentifierType(Integer.valueOf(types[i]));

                        Location loc = null;
                        if (locs[i] == null || locs[i].equals("")) {
                            String msg = getMessageSourceAccessor()
                                    .getMessage("PatientIdentifier.location.null", args);
                            errors.reject(msg);
                        } else
                            loc = Context.getLocationService().getLocation(Integer.valueOf(locs[i]));

                        PatientIdentifier pi = new PatientIdentifier(id, pit, loc);
                        pi.setPreferred(pref.equals(id + types[i]));
                        if (newIdentifiers.contains(pi))
                            newIdentifiers.remove(pi);

                        //                     pi.setUuid(null);
                        newIdentifiers.add(pi);

                        if (log.isDebugEnabled()) {
                            log.debug("Creating patient identifier with identifier: " + id);
                            log.debug("and type: " + types[i]);
                            log.debug("and location: " + locs[i]);
                        }

                    }
                }
            }
        }

        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "gender", "error.null");

        if (shortPatient.getBirthdate() == null) {
            Object[] args = { "Birthdate" };
            errors.rejectValue("birthdate", "error.required", args, "");
        } else {
            // check patients birthdate against future dates and really old dates
            if (shortPatient.getBirthdate().after(new Date()))
                errors.rejectValue("birthdate", "error.date.future");
            else {
                Calendar c = Calendar.getInstance();
                c.setTime(new Date());
                c.add(Calendar.YEAR, -120); // patient cannot be older than 120 years old 
                if (shortPatient.getBirthdate().before(c.getTime())) {
                    errors.rejectValue("birthdate", "error.date.nonsensical");
                }
            }
        }

    }

    // skip calling super.processFormSubmission so that setting up the page is done
    // again in the onSubmit method

    return onSubmit(request, response, shortPatient, errors);
}

From source file:org.telscenter.sail.webapp.presentation.web.controllers.teacher.RegisterTeacherController.java

/**
 * On submission of the signup form, a user is created and saved to the data
 * store./*from w w  w .  j av a 2 s  . c  o m*/
 * 
 * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse, java.lang.Object,
 *      org.springframework.validation.BindException)
 */
@Override
protected synchronized ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
        Object command, BindException errors) throws Exception {
    String domain = "http://" + request.getServerName();
    String domainWithPort = domain + ":" + request.getLocalPort();
    String referrer = request.getHeader("referer");
    String registerUrl = "/webapp/teacher/registerteacher.html";
    String updateAccountInfoUrl = "/webapp/teacher/management/updatemyaccountinfo.html";

    if (referrer.contains(domain + registerUrl) || referrer.contains(domainWithPort + registerUrl)
            || referrer.contains(domain + updateAccountInfoUrl)
            || referrer.contains(domainWithPort + updateAccountInfoUrl)) {
        TeacherAccountForm accountForm = (TeacherAccountForm) command;
        TeacherUserDetails userDetails = (TeacherUserDetails) accountForm.getUserDetails();

        if (accountForm.isNewAccount()) {
            try {
                userDetails.setDisplayname(userDetails.getFirstname() + " " + userDetails.getLastname());
                userDetails.setEmailValid(true);
                User createdUser = this.userService.createUser(userDetails);
                // send email to new teacher if email server is configured properly

                NewAccountEmailService newAccountEmailService = new NewAccountEmailService(createdUser,
                        request.getLocale());
                Thread thread = new Thread(newAccountEmailService);
                thread.start();
            } catch (DuplicateUsernameException e) {
                errors.rejectValue("username", "error.duplicate-username",
                        new Object[] { userDetails.getUsername() }, "Duplicate Username.");
                return showForm(request, response, errors);
            }
        } else {
            User user = userService.retrieveUserByUsername(userDetails.getUsername());

            TeacherUserDetails teacherUserDetails = (TeacherUserDetails) user.getUserDetails();
            teacherUserDetails.setCity(userDetails.getCity());
            teacherUserDetails.setCountry(userDetails.getCountry());
            teacherUserDetails.setCurriculumsubjects(userDetails.getCurriculumsubjects());
            teacherUserDetails.setEmailAddress(userDetails.getEmailAddress());
            teacherUserDetails.setSchoollevel(userDetails.getSchoollevel());
            teacherUserDetails.setSchoolname(userDetails.getSchoolname());
            teacherUserDetails.setState(userDetails.getState());
            teacherUserDetails.setDisplayname(userDetails.getDisplayname());
            teacherUserDetails.setEmailValid(true);

            userService.updateUser(user);
            // update user in session
            request.getSession().setAttribute(User.CURRENT_USER_SESSION_KEY, user);
        }

        ModelAndView modelAndView = new ModelAndView(getSuccessView());

        modelAndView.addObject(USERNAME_KEY, userDetails.getUsername());
        modelAndView.addObject(DISPLAYNAME_KEY, userDetails.getDisplayname());
        return modelAndView;
    } else {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return null;
    }
}

From source file:org.telscenter.sail.webapp.presentation.web.controllers.teacher.run.CreateRunController.java

/**
 * Creates a run.//w  ww .j  a  v  a2s  .com
 * 
 * This method is called if there is a submit that validates and contains the "_finish"
 * request parameter.
 * 
 * @see org.springframework.web.servlet.mvc.AbstractWizardFormController#processFinish(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
 */
@Override
protected ModelAndView processFinish(HttpServletRequest request, HttpServletResponse response, Object command,
        BindException errors) throws Exception {
    RunParameters runParameters = (RunParameters) command;

    // TODO: LAW or HT: shouldn't createOffering throw exception?
    // e.g. CurnitNotFoundException and JNLPNotFoundException
    // answer: yes
    Run run = null;
    try {
        // get newProjectId from request and use that to set up the run
        String newProjectId = request.getParameter("newProjectId");
        Project newProject = projectService.getById(new Long(newProjectId));
        runParameters.setProject(newProject);

        run = this.runService.createRun(runParameters);

        // create a workgroup for the owners of the run (teacher)
        WISEWorkgroup teacherWISEWorkgroup = workgroupService.createWISEWorkgroup("teacher",
                runParameters.getOwners(), run, null);

        // if the project has brainstorms, instantiate them and add them to the run
        Set<Brainstorm> brainstormsForProject = brainstormService
                .getParentBrainstormsForProject(run.getProject());
        for (Brainstorm brainstorm : brainstormsForProject) {
            Brainstorm brainstormCopy = brainstorm.getCopy();
            brainstormCopy.setRun(run);
            // post preparedAnswers
            Set<PreparedAnswer> preparedAnswers = brainstorm.getPreparedAnswers();
            for (PreparedAnswer preparedAnswer : preparedAnswers) {
                Answer answer = new AnswerImpl();
                Revision revision = new RevisionImpl();
                answer.setWorkgroup(teacherWISEWorkgroup);
                revision.setBody(preparedAnswer.getBody());
                revision.setTimestamp(new Date());
                revision.setDisplayname(preparedAnswer.getDisplayname());
                answer.addRevision(revision);
                brainstormCopy.addAnswer(answer);
            }
            brainstormService.createBrainstorm(brainstormCopy);
        }
    } catch (ObjectNotFoundException e) {
        errors.rejectValue("curnitId", "error.curnit-not_found", new Object[] { runParameters.getCurnitId() },
                "Curnit Not Found.");
        return showForm(request, response, errors);
    }
    ModelAndView modelAndView = new ModelAndView(COMPLETE_VIEW_NAME);
    modelAndView.addObject(RUN_KEY, run);
    Set<String> runIdsToArchive = runParameters.getRunIdsToArchive();
    if (runIdsToArchive != null) {
        for (String runIdStr : runIdsToArchive) {
            Long runId = Long.valueOf(runIdStr);
            Run runToArchive = runService.retrieveById(runId);
            runService.endRun(runToArchive);
        }
    }

    // send email to the recipients in new thread
    //tries to retrieve the user from the session
    User user = ControllerUtil.getSignedInUser();

    CreateRunEmailService emailService = new CreateRunEmailService(command, run, user);
    Thread thread = new Thread(emailService);
    thread.start();

    return modelAndView;
}