Saya mencoba mengoper ArrayList yang berisi objek dari servlet ke JSP. Tetapi
File servlet:
request.setAttribute("servletName", categoryList); //categorylist is an arraylist contains object of class category
getServletConfig().getServletContext().getRequestDispatcher("/GetCategory.jsp").forward(request,response);
File JSP:
//category class
<% Category category = new Category();
//creating arraylist object of type category class
ArrayList<Category> list = ArrayList<Category>();
//storing passed value from jsp
list = request.getAttribute("servletName");
for(int i = 0; i < list.size(); i++) {
category = list.get(i);
out.println( category.getId());
out.println(category.getName());
out.println(category.getMainCategoryId() );
}
%>
Dalam kode servlet, dengan instruksi request.setAttribute("servletName", categoryList)
, Anda menyimpan daftar Anda dalam objek permintaan, dan menggunakan nama "servletName" untuk merujuknya.
Ngomong-ngomong, menggunakan nama "servletName" untuk daftar cukup membingungkan, mungkin lebih baik menyebutnya "list" atau sesuatu yang serupa: request.setAttribute("list", categoryList)
Bagaimanapun, misalkan Anda tidak mengubah kode serlvet Anda, dan menyimpan daftar menggunakan nama "servletName". Ketika Anda tiba di JSP Anda, Anda perlu mengambil daftar dari permintaan, dan untuk itu Anda hanya memerlukan metode request.getAttribute(...)
.
<%
// retrieve your list from the request, with casting
ArrayList<Category> list = (ArrayList<Category>) request.getAttribute("servletName");
// print the information about every category of the list
for(Category category : list) {
out.println(category.getId());
out.println(category.getName());
out.println(category.getMainCategoryId());
}
%>
Metode request.getAttribute("servletName")
akan mengembalikan Object
yang perlu Anda cast ke ArrayList
ArrayList<Category> list =new ArrayList<Category>();
//storing passed value from jsp
list = (ArrayList<Category>)request.getAttribute("servletName");
kesalahan yang mungkin terjadi adalah...
1.Anda mengatur daftar larik dari servelt di sesi, bukan di permintaan.
2. array yang Anda set adalah null.
3. Anda mengarahkan ulang halaman alih-alih meneruskannya.
Anda juga tidak boleh menginisialisasi daftar
dan kategori
di jsp. coba ini.
for(Category cx: ((ArrayList<Category>)request.getAttribute("servletName"))) {
out.println( cx.getId());
out.println(cx.getName());
out.println(cx.getMainCategoryId() );
}