0

userListJSPに渡す前に、元のサーブレットからArrayListをセッション属性として保存するためにHttpSessionを使用しています。その後、次の JSP で呼び出され、その JSP から別のサーブレットに呼び出されます。

サーブレット 1 -> JSP1 -> JSP2 -> サーブレット 2

サーブレット 1 では、 session に設定しました。

if (!userList.isEmpty()) {
    session.setAttribute("userList", userList); 
}    

JSP 1 と JSP 2 で繰り返し、サーブレット 2 で再度呼び出します。サーブレット 2 の別のメソッドで ArrayList をパラメーターとして使用する必要があります。

EditStudentForm edt = (EditStudentForm)form;
List<UserApplication> studtList = new ArrayList<UserApplication>();
if ((session.getAttribute("userList")) instanceof List){
    studtList = (ArrayList<UserApplication>)request.getSession().getAttribute("userList");
}
try {
    uaDAO.editUser(edt,studtList);
    action_forward = EDITSUCCESS;
}

ArrayList のサイズが 1 であるため、キャストが実際には機能していないようです (少なくとも 30 のサイズを期待しています)。

私は何を間違っていますか?

4

2 に答える 2

0

キャストは正常に機能しており、リストのサイズとは関係ありません。キャストは、格納したものuserListが実際には ArrayList であることを示しているだけです。サイズが異なる場合は、ロジックのどこかにバグがあることを示しているようです。userListを呼び出した後、変数が参照するリストを変更しますsession.setAttribute()か?

于 2013-02-15T21:59:10.083 に答える
0

にキャストしてみてくださいList<UserApplication>

于 2013-02-15T22:01:01.390 に答える