Bonjour,
je débute en développement java appliqué au web, alors excusez-moi par avance si ce que je dis n'est pas très compréhensible...
Tout d'abord, voici ce que je veux faire:
un servletController est initialisé dès l'appel par le navigateur, et va chercher en base de données des informations. Je possède deux classes BeanModel: BlogBeanModel et SiteBeanModel, sachant que SiteModelBean contient une ArrayList de type BlogBeanModel (les deux classes dans un package nommé blogMotor). Après avoir été chercher les infos en bases, la servlet "rempli" les BeanModel, je dispose alors d'une instance de classe siteBeanModel qui comprend des variables dont un ArrayList de BlogBeanModel. Ensuite, je mets dans la requete mon objet siteBeanModel et je forward sur ma page jsp.
Voici mon problème!
Je souhaite donc afficher le contenu de mon ArrayList dans ma JSP. Pour ce faire, j'ai testé deux méthodes:
Méthode 1:
<jsp:useBean id="siteBeanModel" class="blogMotor.SiteBeanModel" scope="request" />
<html>
<head>
<title>Blog-Motor</title>
</head>
<body>
<ul>
<li>idBlog: <jsp:getProperty name="siteBeanModel" property="blogs" /></li>
</ul>
</body>
</html>
Ici, blogs est le nom de l'ArrayList défini dans ma classe SiteBeanModel.
Le problème c'est que la jsp affiche tous les éléments de mon ArrayList tous collés les uns aux autres, mais surtout, mon ArrayList étant de type BlogBeanModel, il me les affiche en tant qu'objet, et j'aimerai pouvoir effectuer un get sur chaque élément de l'ArrayList afin d'accéder à la ressource qui m'intéresse.
Après des recherches sur internet, j'ai décidé d'utiliser les libs de struts.
Méthode 2:
<%@taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %>
<html>
<head>
<title>Blog-Motor</title>
</head>
<body>
<ul>
<logic:iterate id="myString" name="siteBeanModel.blogs" scope="request">
<bean:write name="myString"/>
</logic:iterate>
</ul>
</body>
</html>
Ici, j'ai suffixé siteBeanModel par blogs, vu que blogs est le ArrayList sur lequel je souhaite itérer, mais lorsque j'essaie d'afficher quelque chose dans mon navigateur, j'ai une erreur :
cause mère
javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean siteBeanModel.blogs in scope session
Pourtant siteBeanModel est bien en session... Il ne serait donc pas possible de suffixé un élément en session ?
Je précise que j'utilise Tomcat 6, je suis sous Windows XP SP2, Firefox 2.0.0.7
J'espère avoir été assez précis !!
Merci !
Configuration: Windows XP
Firefox 2.0.0.7