public ModelAndView createTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception {
TemplateForm2 form = new TemplateForm2();
BindingResult errors = new BeanPropertyBindingResult(form, "templateForm");
try {
doBind(request, form);//显示调用
} catch (BindException e) {
errors.addAllErrors(e.getBindingResult());
} catch (Exception e) {
log.error("Unknown error occured while binding the command object.", e);
throw e;
}
}
@SuppressWarnings("rawtypes")
protected Map doBind(HttpServletRequest request, Object command) throws Exception {
ServletRequestDataBinder binder = createBinder(request, command);
binder.bind(request);
BindingResult bindingResult = binder.getBindingResult();
Validator[] validators = getValidators();
if (validators != null) {
for (int i = 0; i < validators.length; i++) {
if (validators[i].supports(command.getClass())) {
ValidationUtils.invokeValidator(validators[i], command, bindingResult);
}
}
}
TemplateForm2 form = (TemplateForm2) command;
//设置存储路径
String orgnizationCodePath = uploadFile(form.getFile1());
String identityCardPath = uploadFile(form.getFile2());
String identityCardPath1 = uploadFile(form.getFile3());
form.getRegistrant().setOrganizationCodePath(orgnizationCodePath);
form.getRegistrant().setIdentityCardPath(identityCardPath);
form.getRegistrant().setIdentityCardPath1(identityCardPath1);
String password = RandomStringUtils.randomAlphanumeric(8);
validateContact(form.getRegistrant(), password, bindingResult);
validateContact(form.getAdmin(), password, bindingResult);
validateContact(form.getTech(), password, bindingResult);
validateContact(form.getBilling(), password, bindingResult);
return binder.close();
}
private void validateContact(DomainContact contact, String password, BindingResult result) {
if (StringUtils.isBlank(contact.getCnOrganization())) contact.setCnOrganization(null);
if (StringUtils.isBlank(contact.getCnProvince())) contact.setCnProvince(null);
if (StringUtils.isBlank(contact.getOrganization())) contact.setOrganization(null);
if (StringUtils.isBlank(contact.getProvince())) contact.setProvince(null);
if (StringUtils.isBlank(contact.getPostal())) contact.setPostal(null);
contact.setPhone(DomainUtils.getE164Number(contact.getPhone()));
contact.setFax(DomainUtils.getE164Number(contact.getFax()));
contact.setCountryCode("CN");
if (password != null) contact.setPassword(password);
}