pass jeu de résultats de servlet pour JSP
Je suis en train de faire la suite de mon SampleServlet.java
//Fill resultset from db
....
try {
ArrayList Rows = new ArrayList();
while (resultSet.next()){
ArrayList row = new ArrayList();
for (int i = 1; i <= 7 ; i++){
row.add(resultSet.getString(i));
}
Rows.add(row);
}
request.setAttribute("propertyList", Rows);
RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/DisplayProperties.jsp");
requestDispatcher.forward(request,response);
et puis, dans ma jsp DisplayPropeties.jsp j'ai
<%
ArrayList rows = new ArrayList();
if (request.getSession().getAttribute("propertyList") != null) {
rows = (ArrayList ) request.getSession().getAttribute("propertyList");
}
%>
mais rows
est toujours null.
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Je ne comprends pas la façon dont les lignes peuvent être
null
donné votreif
déclaration.De toute façon, ne devrait-elle pas être
request.getAttribute("propertyList")
dans leDisplayProperties.jsp
?Vous devez également ne pas être à l'aide d'un jeu de résultats dans une JSP. C'est une base de données de curseur, une ressource rare. Vous pouvez obtenir ce pour "travailler" sur une page simple, mais je serais prêt à parier que vous n'avez pas de responsabilité claire pour la clôture du jeu de résultats, l'état, ou d'une Connexion dans votre code. Vous allez bientôt sortir et je me demande pourquoi votre code est de s'écraser avec des exceptions.
Aucun de java.sql implémentations d'interface doit s'échapper de bien définir la couche de persistance. Acquérir la connexion, obtenir le jeu de résultats, la carte dans un objet ou une structure de données, et de fermer toutes vos ressources dans l'ordre inverse de l'acquisition, puis de retour de l'objet ou de la structure de données de votre JSP, écrite uniquement avec JSTL et pas de scriplets, pour l'affichage. C'est la bonne chose à faire.
Si vous DEVEZ utiliser SQL dans une page JSP, utilisez la JSTL <sql> balises de le faire.
Vous avez la réponse, donc je ne vais qu'à faire une suggestion d'amélioration: ne pas utiliser les scriptlets en JSP. Utilisation taglibs et EL, le cas échéant. Un exemple pour générer une liste serait:
Vous pouvez faire de même pour le code HTML
table
s et déroulanteoption
s. Espérons que cette aide.Utilisation
au lieu de
dans votre servlet code. Il fonctionnera parfaitement.