UploadExampleListener.java
package sk.iway.basecms.contact.upload;
import javax.validation.Validator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import sk.iway.iwcm.admin.AbstractUploadListener;
import sk.iway.iwcm.admin.ThymeleafEvent;
import sk.iway.iwcm.system.spring.events.WebjetEvent;
/**
* Ukazkovy Thymeleaf listener pre spracovanie uploadu suboru
*/
@Component
public class UploadExampleListener extends AbstractUploadListener<Form> {
private static final Logger LOGGER = LoggerFactory.getLogger(UploadExampleListener.class);
protected UploadExampleListener(Validator validator) {
super(validator);
}
@Override
@EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.admin.ThymeleafEvent' && event.source.page=='contact' && event.source.subpage=='upload'")
public void processForm(final WebjetEvent<ThymeleafEvent> event) {
// sprocesovanie dat formularu do objektu a validacia tohto objektu
super.processForm(event);
ModelMap model = event.getSource().getModel();
// ziskanie objektu a vlozenie do modelu
Form form = getForm();
model.addAttribute("form", form);
LOGGER.debug("Is post: {}", isPost());
if (!isPost()) {
// ak nie je request typu post, tak dalej nic nerobime
return;
}
// ziskanie validacnych errorov
BindingResult errors = getBindingResult();
if (errors.hasErrors()) {
LOGGER.debug("We have errors: {}", errors.getErrorCount());
return;
}
//
//...spravte s formularom co potrebujete
//
model.addAttribute("importedFileName", form.getDocument().getOriginalFilename());
}
}