Этот вопрос касается загрузки и обработки данных CSV в Spring Framework с использованием загрузки Primefaces для создания новых записей в базе данных.
Я построил свой XHTML-код на шаблоне из Primefaces. Когда я нажимаю кнопку «Отправить», должен быть вызван метод uploadDevices, но я понял, что метод никогда не вводится. Когда я удаляю оператор ajax = "false", вызывается метод, но в Inputstream выдается исключение Nullpointer, поэтому, очевидно, файл не получен.
У кого-нибудь есть совет, что делать? Что делает оператор ajax, предотвращающий вызов метода?
Любая помощь очень ценится.
devices.xhtml
<h:form enctype="multipart/form-data" style="margin-bottom:20px">
<p:growl id="messages" showDetail="true" />
<p:fileUpload value="#{fileUploadView.file}" ajax="false" mode="simple" skinSimple="true" allowTypes="/(\.|\/)(csv)$/"/>
<p:commandButton value="Submit" ajax="false" action="#{fileUploadView.uploadDevices()}" disabled="false" />
</h:form>
FileUploadView.java
@Component
@Scope("view")
public class FileUploadView {
private UploadedFile file;
// plus getter and setter
@Autowired
private DeviceService deviceService;
private Device device;
public void uploadDevices() {
final CSVParser parser = new CSVParserBuilder().withSeparator(',').withIgnoreQuotations(true).build();
final BufferedReader fileReader = new BufferedReader(new InputStreamReader(file.getInputstream()));
}