このエラーが発生する理由:
java.lang.IndexOutOfBoundsException: インデックス: 4 、サイズ: 4
私は何も定義しておらず、正常に動作している別のサーブレットで同じロジックを使用しています。私の他のサーブレットでは、すべての製品を選択しているので、2 つの配列リストを使用しました。ここで試してみましたが、それでも同じエラーが発生します。エラーを明確に理解していますが、この構文でエラーを解決する方法がわかりません。
ありがとうございました。
ConnectionPool pool = ConnectionPool.getInstance();
Connection connection = pool.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
int product_id =Integer.parseInt(req.substring(req.lastIndexOf("/")+1));
ArrayList al = null;
String query = "select * from Product where product_id="+product_id;
try {
ps = connection.prepareStatement(query);
rs = ps.executeQuery(query);
while (rs.next()) {
al = new ArrayList();
al.add(rs.getString("product_id"));
al.add(rs.getString("product_name"));
al.add(rs.getString("product_description"));
al.add(rs.getDouble("product_price"));
}
このサーブレットの次の JSP ページは次のとおりです。
<%!
String product_id="";
String product_name="";
String product_description="";
double product_price = 0;
ArrayList productList=null;
%>
<%
if(request.getAttribute("productList")!=null && request.getAttribute("productList")!="") {
productList = (ArrayList)request.getAttribute("productList");
product_id = productList.get(1).toString();
product_name = productList.get(2).toString();
product_description = productList.get(3).toString();
product_price = (Double) productList.get(4);
}
%>