带有java.lang.NumberFormatException的Servlet中的问题:用于输入字符串
我使用servlet和JSP将餐厅客户端菜单输入到SQL表中,它向我抛出以下消息 java.lang.NumberFormatException:对于输入字符串:“总计” PedidoDAO包含以下内容:带有java.lang.NumberFormatException的Servlet中的问题:用于输入字符串,java,jsp,servlets,Java,Jsp,Servlets,我使用servlet和JSP将餐厅客户端菜单输入到SQL表中,它向我抛出以下消息 java.lang.NumberFormatException:对于输入字符串:“总计” PedidoDAO包含以下内容: public class PedidoDAO implements IPedidoDAO { PreparedStatement ps; private static final String SQL_INSERT = "insert into Pedido (rutCliente, p
public class PedidoDAO implements IPedidoDAO {
PreparedStatement ps;
private static final String SQL_INSERT = "insert into Pedido (rutCliente, plato, bebida, despacho, total) values (?,?,?,?,?)";
private static final String SQL_READALL = "select * from Pedido";
private static final Conexion con = Conexion.getInstance();
@Override
public int Create(Pedido pedido) {
int flag = 0;
try {
ps = con.getCnn().prepareStatement(SQL_INSERT);
ps.setString(1, pedido.getRutCliente());
ps.setString(2, pedido.getPlato());
ps.setString(3, pedido.getBebida());
ps.setString(4, pedido.getDespacho());
ps.setInt(5, pedido.getTotal());
ps.setDate(6, fecha);
flag = ps.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(PedidoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return flag;
}
@Override
public ArrayList<Pedido> MostrarPedidos() {
ArrayList<Pedido> pedidos = null;
try {
pedidos = new ArrayList<>();
ps = con.getCnn().prepareStatement(SQL_READALL);
ResultSet res = ps.executeQuery();
while (res.next()) {
pedidos.add(new Pedido(res.getString(1), res.getString(2), res.getString(3), res.getString(4), res.getInt(5)));
System.out.println(""
+ "Rut Cliente: "+res.getString(1)+" || "
+ "Plato: "+res.getString(2)+" || "
+ "Tipo Bebestible: "+res.getString(3)+" || "
+ "Despacho?: "+res.getString(4)+" || "
+ "Total: "+res.getInt(5));
}
} catch (SQLException ex) {
Logger.getLogger(PedidoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return pedidos;
}
}
<table border="1">
<tr>
<td>Rut</td>
<td>Plato</td>
<td>Bebida</td>
<td>Despacho</td>
<td>Total</td>
</tr>
<c:forEach var="pedidoAgregado" items="${sessionScope.pedidoAgregado}">
<tr>
<td>${pedidoAgregado.total}</td>
</tr>
</c:forEach>
</table>
“列表”Servlet包含以下内容
@WebServlet(name = "ListaPedidos", urlPatterns = {"/ListaPedidos"})
public class ListaPedidos extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayList<Pedido> pedidoAgregado = new ArrayList<Pedido>();
PedidoDAO p1 = new PedidoDAO();
pedidoAgregado = p1.MostrarPedidos();
request.getSession().setAttribute("pedidoAgregado", pedidoAgregado);
RequestDispatcher r = request.getRequestDispatcher("PasoDos.jsp");
r.forward(request, response);
}
@WebServlet(name=“ListaPedidos”,urlPatterns={”/ListaPedidos})
公共类ListaPedidos扩展了HttpServlet{
受保护的void processRequest(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
ArrayList pedidoAgregado=新ArrayList();
PedidoDAO p1=新PedidoDAO();
Peddoagregado=p1.MostrarPedidos();
request.getSession().setAttribute(“pedidoAgregado”,pedidoAgregado);
RequestDispatcher=request.getRequestDispatcher(“PasoDos.jsp”);
r、 转发(请求、响应);
}
JSP包含以下内容:
public class PedidoDAO implements IPedidoDAO {
PreparedStatement ps;
private static final String SQL_INSERT = "insert into Pedido (rutCliente, plato, bebida, despacho, total) values (?,?,?,?,?)";
private static final String SQL_READALL = "select * from Pedido";
private static final Conexion con = Conexion.getInstance();
@Override
public int Create(Pedido pedido) {
int flag = 0;
try {
ps = con.getCnn().prepareStatement(SQL_INSERT);
ps.setString(1, pedido.getRutCliente());
ps.setString(2, pedido.getPlato());
ps.setString(3, pedido.getBebida());
ps.setString(4, pedido.getDespacho());
ps.setInt(5, pedido.getTotal());
ps.setDate(6, fecha);
flag = ps.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(PedidoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return flag;
}
@Override
public ArrayList<Pedido> MostrarPedidos() {
ArrayList<Pedido> pedidos = null;
try {
pedidos = new ArrayList<>();
ps = con.getCnn().prepareStatement(SQL_READALL);
ResultSet res = ps.executeQuery();
while (res.next()) {
pedidos.add(new Pedido(res.getString(1), res.getString(2), res.getString(3), res.getString(4), res.getInt(5)));
System.out.println(""
+ "Rut Cliente: "+res.getString(1)+" || "
+ "Plato: "+res.getString(2)+" || "
+ "Tipo Bebestible: "+res.getString(3)+" || "
+ "Despacho?: "+res.getString(4)+" || "
+ "Total: "+res.getInt(5));
}
} catch (SQLException ex) {
Logger.getLogger(PedidoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return pedidos;
}
}
<table border="1">
<tr>
<td>Rut</td>
<td>Plato</td>
<td>Bebida</td>
<td>Despacho</td>
<td>Total</td>
</tr>
<c:forEach var="pedidoAgregado" items="${sessionScope.pedidoAgregado}">
<tr>
<td>${pedidoAgregado.total}</td>
</tr>
</c:forEach>
</table>
车辙
柏拉图
比比达
及批示
全部的
${pedidoAgregado.total}
我不知道是什么失败了,因为应用程序中的其他方法,如插入用户、插入产品(柏拉图)都是正确的,但这一点尤其不正确
如果你们能帮助我,那就太好了!您的数据库表中“total”的列数据类型是什么?这么多代码。请将其简化为相关代码,并向我们展示您试图解析为整数的数据(如果您正在这样做的话)与该异常一起出现的堆栈跟踪对于定位问题的位置非常有价值。您可以发布该异常的完整堆栈跟踪吗?我看不到“总数”var…您的数据库表中“total”的列数据类型是什么?代码太多了。请将其简化为相关代码,并向我们显示您试图解析为整数的数据(如果您正在这样做的话)与该异常一起出现的堆栈跟踪对于定位问题的位置非常有价值。您可以发布该异常的完整堆栈跟踪吗?我看不到“总计”变量。。。