@ActionMapping("add") public void addPerson( @Valid @ModelAttribute Person person, BindingResult result, ActionRequest actionRequest, ActionResponse actionResponse, SessionStatus sessionStatus, Model model) { if (!result.hasErrors()) { logger.info("ACTION: action saving person = " + person); try { DateTime dt1 = DateTime.now(); DateTime dt2 = dt1.plusYears(10); IdentityCard identityCard = new IdentityCard(person, "BL", "112233", dt1.toDate(), dt2.toDate()); identityCard.setAddress("-"); person.setIdentityCard(identityCard); personManager.save(person); model.addAttribute( "message", messageSource.getMessage("label.Person.saved", null, actionRequest.getLocale())); sessionStatus.setComplete(); } catch (Exception e) { logger.error("Unexpected error when saving person.", e); model.addAttribute("error", "Internal Error. Contact Administrator."); } } else { logger.info("Validation failed"); model.addAttribute("errors", result); } }
protected void validateFields(ActionRequest actionRequest) throws Exception { Locale defaultLocale = LocaleUtil.getDefault(); String defaultLanguageId = LocaleUtil.toLanguageId(defaultLocale); boolean sendAsEmail = GetterUtil.getBoolean(getParameter(actionRequest, "sendAsEmail")); String subject = getParameter(actionRequest, "subject"); boolean saveToDatabase = GetterUtil.getBoolean(getParameter(actionRequest, "saveToDatabase")); boolean saveToFile = GetterUtil.getBoolean(getParameter(actionRequest, "saveToFile")); if (!sendAsEmail && !saveToDatabase && !saveToFile) { SessionErrors.add(actionRequest, "handlingRequired"); } if (sendAsEmail) { if (Validator.isNull(subject)) { SessionErrors.add(actionRequest, "subjectRequired"); } String[] emailAdresses = WebFormUtil.split(getParameter(actionRequest, "emailAddress")); if (emailAdresses.length == 0) { SessionErrors.add(actionRequest, "emailAddressRequired"); } for (String emailAdress : emailAdresses) { emailAdress = emailAdress.trim(); if (!Validator.isEmailAddress(emailAdress)) { SessionErrors.add(actionRequest, "emailAddressInvalid"); } } } if (saveToFile) { String fileName = getParameter(actionRequest, "fileName"); // Check if server can create a file as specified try { FileOutputStream fileOutputStream = new FileOutputStream(fileName, true); fileOutputStream.close(); } catch (SecurityException se) { SessionErrors.add(actionRequest, "fileNameInvalid"); } catch (FileNotFoundException fnfe) { SessionErrors.add(actionRequest, "fileNameInvalid"); } } if (saveToDatabase) { int i = 1; String languageId = LocaleUtil.toLanguageId(actionRequest.getLocale()); String fieldLabel = ParamUtil.getString(actionRequest, "fieldLabel" + i + "_" + languageId); while ((i == 1) || Validator.isNotNull(fieldLabel)) { if (fieldLabel.length() > 75) { SessionErrors.add(actionRequest, "fieldSizeInvalid" + i); } i++; fieldLabel = ParamUtil.getString(actionRequest, "fieldLabel" + i + "_" + languageId); } } if (!validateUniqueFieldNames(actionRequest)) { SessionErrors.add(actionRequest, DuplicateColumnNameException.class.getName()); } }