probleme avec un simple select
j avoue que je comprends vraiment rien un simple s:select me donne
Citation:
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:
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:
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:
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:
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