Bonjour,
Je souhaiterais afficher le contenu d'un hashmap dans une page jsp en passant par le tag "logic", je me bats depuis quelques jours maintenant en cherchant un peu partout sur le net mais rien y fait.

Peut-etre que je m'y prends mal...si c'est le cas pourriez-vous m'orienter vers une solution mieux appropriée.

J'aimerais donc trouver une solution, et savoir si je devrais utiliser cette même méthode pour afficher une requête d'une base de données.

merci d'avance pour votre aide.


Erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cause mère
 
org.apache.jasper.JasperException: Exception in JSP: /pages/welcome.jsp:40
 
37: <h1> Bienvenue <bean:write name="LoginForm" property="username"/></h1> 
38: 
39: 
40: <logic:iterate id="emp" name="LoginAction" property="mapUserInfos">
41: 	Emp Id: <bean:write name="emp" property="key"/>
42: 	Emp Name: <bean:write name="emp" property="value"/>
43: </logic:iterate>	
 
 
Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
LoginAction.java


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class LoginAction extends Action {
 
 
	public ActionForward execute(ActionMapping mapping, 
			ActionForm form, 
			HttpServletRequest request, 
			HttpServletResponse response)throws Exception {  
 
		Map<String, Object> mapUserInfos = new HashMap<String, Object>();
 
		mapUserInfos.put("Rohit", new Double(3434.34));
 
		LoginFormBean loginForm = (LoginFormBean)form;  
		//boolean validLogin = LoginDAO.login(loginForm.getUsername(), loginForm.getPassword());  
 
		request.setAttribute("MAP",mapUserInfos);
 
		String resultat = null;  
 
		if (loginForm.getUsername().equals("prenom")  && loginForm.getPassword().equals("pass")  ){
			resultat = "welcome";  
		}else{
			resultat = "error";  
		}  
 
 
		return mapping.findForward(resultat);
	}
struts-config.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<struts-config>  
 
	<data-sources/> 
 
	<form-beans>  
	 	<form-bean name="LoginForm" type="com.sample.LoginFormBean"/>  
	</form-beans>
 
	<global-exceptions/> 
 
	<global-forwards>  
		<forward name="welcome" path="/pages/login.jsp" />
	</global-forwards>
 
	 <action-mappings>  
	 	<action input="/pages/login.jsp" 
	 			name="LoginForm" 
	 			path="/checkLogin" 
	 			scope="session" 
	 			type="com.sample.LoginAction">  
	    	<forward name="welcome" path="/pages/welcome.jsp"/>  
	    	<forward name="error" path="/pages/error.jsp"/>  
	 	</action>  
	 </action-mappings> 
 
	 <controller/>
 
	 <message-resources parameter="com.sample.MessageResources"/> 
 
 </struts-config>
welcome.jsp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
 
<html:html>
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
 
<logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application">
  <font color="red">
    Succes:  Bienvenue !!!! 
  </font>
</logic:notPresent>
 
<h3><bean:message key="welcome.heading"/></h3>
<p><bean:message key="welcome.message"/></p>
 
<h1> Bienvenue <bean:write name="LoginForm" property="username"/></h1> 
 
 
<logic:iterate id="emp" name="LoginAction" property="mapUserInfos">
	Emp Id: <bean:write name="emp" property="key"/>
	Emp Name: <bean:write name="emp" property="value"/>
</logic:iterate>
</body>
</html:html>