j avoue que je comprends vraiment rien un simple s:select me donne
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
tag 'select', field 'list', name 'profession': The requested list key 'listeProfessions' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
at org.apache.struts2.components.Component.fieldError(Component.java:230)
at org.apache.struts2.components.Component.findValue(Component.java:351)
at org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80)
at org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105)
at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856)
at org.apache.struts2.components.UIBean.end(UIBean.java:510)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.jsp.AjouterClient_jsp._jspx_meth_s_005fselect_005f0(AjouterClient_jsp.java:232)
at org.apache.jsp.jsp.AjouterClient_jsp._jspx_meth_s_005fform_005f0(AjouterClient_jsp.java:130)
at org.apache.jsp.jsp.AjouterClient_jsp._jspService(AjouterClient_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
2010-03-22 18:31:50 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
tag 'select', field 'list', name 'profession': The requested list key 'listeProfessions' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
at org.apache.struts2.components.Component.fieldError(Component.java:230)
at org.apache.struts2.components.Component.findValue(Component.java:351)
at org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80)
at org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105)
at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856)
at org.apache.struts2.components.UIBean.end(UIBean.java:510)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.jsp.AjouterClient_jsp._jspx_meth_s_005fselect_005f0(AjouterClient_jsp.java:232)
at org.apache.jsp.jsp.AjouterClient_jsp._jspx_meth_s_005fform_005f0(AjouterClient_jsp.java:130)
at org.apache.jsp.jsp.AjouterClient_jsp._jspService(AjouterClient_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
et j ai pourtant le bon code
j ai deux classe classe Client
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
package exemple02;
 
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
 
 
@SuppressWarnings("serial")
public class Client extends ActionSupport {
 
    private String identifiant;
    private String motdepasse;
    private Integer profession;
    private Integer[] repas;
    private List<Profession> listeProfessions=new ArrayList<Profession>();
    private List<Repas> listeRepas=new ArrayList<Repas>();
 
    public Client()
    {
 
    }
 
    // retourner une liste de professions
    public List<Profession> getListeProfessions() {
		listeProfessions.add(new Profession(1, "Informaticien"));
		listeProfessions.add(new Profession(2, "Formateur"));
		listeProfessions.add(new Profession(3, "SGBDM"));
		listeProfessions.add(new Profession(4, "Responsable reseau"));
		return listeProfessions;
	}
 
	public void setListeProfessions(List<Profession> listeProfessions) {
		this.listeProfessions = listeProfessions;
	}
 
	public int getProfession() {
		return profession;
	}
 
	public void setProfession(Integer profession) {
		this.profession = profession;
	}
 
	public List<Repas> getListeRepas() {
		listeRepas.add(new Repas(1, "Repas du midi"));
		listeRepas.add(new Repas(2, "Repas du soir"));
		return listeRepas;
	}
 
	public void setListeRepas(List<Repas> listeRepas) {
		this.listeRepas = listeRepas;
	}
 
	public Integer[] getRepas() {
		return repas;
	}
 
	public void setRepas(Integer repas[]) {
		this.repas = repas;
	}
 
	public String getIdentifiant() {
		return identifiant;
	}
 
	public void setIdentifiant(String identifiant) {
		this.identifiant = identifiant;
	}
 
	public String getMotdepasse() {
		return motdepasse;
	}
 
	public void setMotdepasse(String motdepasse) {
		this.motdepasse = motdepasse;
	}
 
	// ajouter les informations du client dans la session
	public String ajouter()
	{	
		// vérifier les saisies, en cas d'erreur retourner sur la page de saisie
		if(this.identifiant.equals("") || this.motdepasse.equals(""))
		{
			return "input";
		}
		// pas d'erreur
		else
		{
			return "afficher";
		}
	}
}
et classe professeur
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
 
package exemple02;
//Classe de gestion des professions
class Profession 
{
    private Integer idProfession;
    private String nom;
    public Profession(Integer idProfession, String nom) 
    {
        this.idProfession=idProfession;
        this.nom=nom;
    }
 
	public Integer getIdProfession() {
		return idProfession;
	}
 
	public void setIdProfession(Integer idProfession) {
		this.idProfession=idProfession;
	}
 
	public String getNom() {
		return nom;
	}
	public void setNom(String nom) {
		this.nom=nom;
	}
 
}
dans mon 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
 
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Ajouter un client</title>
<style type="text/css">@import url(css/styles.css);</style>
</head>
<body>
<div id="enveloppe">
	<h3>Ajouter un client</h3>
	<s:form method="post" action="ValiderAjouter_Client">
		<s:textfield name="identifiant" id="identifiant" label="Identifiant" labelposition="top" cssClass="input"/>
		<s:textfield name="motdepasse" label="Mot de passe" labelposition="top" cssClass="input"/>
		<s:select name="profession" label="Profession" labelposition="top" list="listeProfessions" listKey="idProfession" listValue="nom"/>
		<s:checkboxlist name="repas" label="Repas" list="listeRepas" listKey="id" listValue="nom" labelposition="top"/>
		<s:submit value="Ajouter le client"/>
	</s:form>
</div>
</body>
</html>
et strut.config
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
 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
 
    <package name="exemple05" namespace="/" extends="struts-default">
        <default-action-ref name="Ajouter_Client" />
 
        <action name="Ajouter_Client" class="exemple02.Client">
            <result>/jsp/AjouterClient.jsp</result>
        </action>
 
        <action name="ValiderAjouter_Client" class="exemple02.Client" method="ajouter">
            <result name="input">/jsp/AjouterClient.jsp</result>
            <result type="chain" name="succes">Afficher_Client</result>
        </action>
 
    </package>
</struts>
tout le semble correct , je comprends pas la reaction de tomcat.

Est ce qu il y a quelqu un qui peut me dire le problem merci d avance