Я ожидаю, что метод загрузки PriceData будет вызываться, когда я нажимаю кнопку отправки, но
метод загрузки не вызывается во время вызова отправки.
Это единственный информационный вызов, который я получаю от Wildfly (WildFly 33.0.2.Final)
Я пытался получить помощь от ИИ, но безуспешно.
2024-09-28 18:46:33,634 INFO [com.example.PriceData] (default task-2) Submit button clicked. Prices: []
Вот мое тело xhtml:
Вот вспомогательный компонент:
package com.example;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Named;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import org.primefaces.event.FileUploadEvent;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@Named
@RequestScoped
public class PriceData {
private static final Logger LOGGER = Logger.getLogger(PriceData.class.getName());
private List
prices = new ArrayList();
public List getPrices() {
return prices;
}
public void upload(FileUploadEvent event) {
LOGGER.log(Level.INFO, "File uploaded: {0}", event.getFile().getFileName()); try (InputStream inputStream = event.getFile().getInputStream()) {
prices = parseCSV(inputStream);
LOGGER.log(Level.INFO, "Prices parsed: {0}", prices);
} catch (IOException e) {
LOGGER.log(Level.SEVERE, "Error uploading file", e);
prices = new ArrayList();
}
}
public void submit() {
LOGGER.log(Level.INFO, "Submit button clicked. Prices: {0}", prices);
}
private List parseCSV(InputStream inputStream) throws IOException {
List priceList = new ArrayList();
try (CSVParser parser = new CSVParser(new InputStreamReader(inputStream), CSVFormat.DEFAULT.withFirstRecordAsHeader())) {
for (CSVRecord record : parser) {
try {
double price = Double.parseDouble(record.get(1));
String date = record.get(0);
priceList.add(new Price(date, price));
} catch (NumberFormatException e) {
LOGGER.log(Level.WARNING, "Invalid price data: {0}", record);
}
}
}
return priceList;
}
public static class Price {
private String date;
private double price;
public Price(String date, double price) {
this.date = date;
this.price = price;
}
public String getDate() {
return date;
}
public double getPrice() {
return price;
}
}
}
Вот некоторые зависимости:
jakarta.platform
jakarta.jakartaee-api
10.0.0
provided
org.primefaces
primefaces
14.0.5
jakarta
Также здесь находится файл web.xml
Faces Servlet
jakarta.faces.webapp.FacesServlet
1
Faces Servlet
*.xhtml
jakarta.faces.PROJECT_STAGE
Development
primefaces.UPLOADER
auto
primefaces.CLIENT_SIDE_VALIDATION
true
primefaces.TRACE
true
index.xhtml
Подробнее здесь: https://stackoverflow.com/questions/790 ... oad-method