List of usage examples for org.springframework.validation BindException rejectValue
@Override
public void rejectValue(@Nullable String field, String errorCode, @Nullable Object[] errorArgs,
@Nullable String defaultMessage)
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; }