У меня есть способ добавить карту на платежную платформу, но когда дело доходит до добавления, появляется ошибка, связанная с проблемами преобразования строки в флаг, а флаг должен быть объектом, поскольку он является частью другого требования клиента.
Вот мой код с последняя попытка решения:
DAO:
Код: Выделить всё
public int addCard(CardModel card, String flagIdString) { int status = 0; sql = "INSERT INTO billing (bil_payment_method, bil_printed_name, bil_expired_at, bil_card_number, bil_cvv, bil_main_card, bil_debt, bil_flag_id) VALUES (?,?,?,?,?,?,?,?);";
try {
con = conexao.getConexaoPostgresql();
pst = con.prepareStatement(sql);
pst.setString(1, card.getPaymentMethod());
pst.setString(2, card.getPrintedName());
pst.setObject(3, card.getExpiredAt());
pst.setString(4, card.getCardNumber());
pst.setString(5, card.getCvv());
pst.setBoolean(6, card.isMainCard());
pst.setBoolean(7, card.isDebt());
int flagId = Integer.parseInt(flagIdString);
FlagDAO flagDao = new FlagDAO();
FlagModel flag = flagDao.getFlagByID(flagId);
card.setFlag(flag);
pst.setInt(8, flag.getId());
status = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
conexao.fecharConexao();
}
return status;
}
Код: Выделить всё
public class CardModel {
private int id;
private String paymentMethod;
private String printedName;
private LocalDate expiredAt;
private String cardNumber;
private String cvv;
private boolean mainCard;
private boolean debt;
private FlagModel flag;
// OUTROS getters
public FlagModel getFlag() {
return flag;
}
//OUTROS setters
public void setFlag(FlagModel flag) {
this.flag = flag;
}
}
Код: Выделить всё
Bandeira
Код: Выделить всё
0){
response.sendRedirect("billing.jsp");
} else {
response.sendRedirect("addCard-Error.jsp");
}
%>
Код: Выделить всё
Root Cause
org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to convert string [2] to class [model.FlagModel] for attribute [flag]: [Property Editor not registered with the PropertyEditorManager]
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(JspRuntimeLibrary.java:376)
org.apache.jasper.runtime.JspRuntimeLibrary.introspect(JspRuntimeLibrary.java:310)
org.apache.jsp.addCard_jsp._jspService(addCard_jsp.java:158)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
Я пробовал преобразовать переменную несколькими способами: с помощью синтаксического анализа, добавления ее в переменную, вызова ее через ДАО Флага, вызов напрямую с карты ДАО и т.д.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ute-flag-p