COINCE ==> Probleme persistant dans le bean
Bonjour,
depuis vendredi j'arrive pas à avancer dans mon appli , et il faut qu 'elle soit fini cette semaine .
Merci de m'aider SVP:
Bon voici l'erreur actuel que j'ai :
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
| javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean under name listRoles
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.users.ajouterUser_jsp._jspService(ajouterUser_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
cause mère
javax.servlet.jsp.JspException: Cannot find bean under name listRoles
org.apache.struts.taglib.html.SelectTag.calculateMatchValues(SelectTag.java:301)
org.apache.struts.taglib.html.SelectTag.doStartTag(SelectTag.java:244)
org.apache.jsp.users.ajouterUser_jsp._jspx_meth_html_005fselect_005f0(ajouterUser_jsp.java:401)
org.apache.jsp.users.ajouterUser_jsp._jspx_meth_html_005fform_005f0(ajouterUser_jsp.java:199)
org.apache.jsp.users.ajouterUser_jsp._jspx_meth_html_005fhtml_005f0(ajouterUser_jsp.java:129)
org.apache.jsp.users.ajouterUser_jsp._jspService(ajouterUser_jsp.java:93)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
Voici mon jsp :
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
|
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page import="appHIB.Roles" %>
<html:html>
<head>
<title>Page de saisie d'un user</title>
</head>
<body bgcolor="#ffffff">
<!--
Ici c'est la page ou sera saisis le nom de notre user, ensuite le formulaire sera donnée a userSaisirBean(réalisé par le controleur) qui
controlera celui-ci avant de le donner a l'action pour le traitement métier et l'acces aux bases de données.
-->
<html:form action="/create" name="frmAjouterUser" type="app.UserAjouterBean">
<CENTER>
<h2>Saisir les informations de votre User</h2>
<table >
<TR><TD></TD></TR>
<TR><TD><h5>Login :</h5></TD><TD><html:text property="logUser" size="50"/><html:errors property="logUser"/></TD></TR>
<TR><TD><h5>Nom :</h5></TD><TD><html:text property="nameUser" size="50"/><html:errors property="nameUser"/></TD></TR>
<TR><TD><h5>Email :</h5></TD><TD><html:text property="emailUser" size="50"/><html:errors property="emailUser"/></TD></TR>
<TR><TD><h5>Liste Roles:</h5></TD><TD><html:text property="rolesUser" size="50"/><html:errors property="rolesUser"/></TD></TR>
<TR></TR>
</table>
<html:select name="listRoles" property="name">
<html:options collection="list_roles" property="id" labelProperty="description"/>
</html:select>
<CENTER> <h5 style="COLOR: #ff0000;"><i>Saisir tous les noms des roles de votre User séparés par des ';'</i> </h5></CENTER>
<html:submit value="Valider"/>
<html:reset value="Reset"/>
</CENTER>
</html:form>
</body>
</html:html> |
le bean associé a cette jsp :
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 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| package app;
import java.util.Collection;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionMapping;
import appHIB.Roles;
import javax.servlet.http.*;
/** ici on definit le bean qui va recevoir les donnees saisies
* dans le formulaire frmSaisiruser de la page saisieuser.jsp
*/
@SuppressWarnings("serial")
public class UserAjouterBean
extends ActionForm {
/**
* Parametre du bean
*/
private String logUser = null;
public String getLogUser() {
return logUser;
}
public void setLogUser(String logUser) {
this.logUser = logUser;
}
/*** name ******************/
private String nameUser = null;
public String getNameUser() {
return nameUser;
}
public void setNameUser(String nameUser) {
this.nameUser = nameUser;
}
/*** email ******************/
private String EmailUser = null;
public String getEmailUser() {
return EmailUser;
}
public void setEmailUser(String EmailUser) {
this.EmailUser = EmailUser;
}
/*** Roles ******************/
private String RolesUser = null;
public String getRolesUser() {
return RolesUser;
}
public void setRolesUser(String RolesUser) {
this.RolesUser = RolesUser;
}
/******************* List Roles **********************************/
private Collection<Roles> listRoles=null;
public Collection<Roles> getListRoles() {
return listRoles;
}
public void setListRoles(Collection<Roles> list) {
this.listRoles = list;
}
/**
* Partie de controle des donnees saisies
* @param actionMapping
* @param httpServletRequest
* @return
*/
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/**
* Creation ici de la liste d'erreur
*/
ActionErrors erreurs = new ActionErrors();
/**Les choses serieuse commencent, je vais controler mon formuliare
* Ici en l'occurrence mon nomuser ne doit pas être vide
* Le controleur appelle cette methode apres aoir chargé les données(ici une seule)
* mais peu importe le nombre
*/
if (logUser.length() == 0) {
/**
* Si le champ nom de l'user est vide je retourne une erreur
* avec erreur.add("clé,ActionError)
*/
erreurs.add("logUser", new ActionError("Objet.nom.vide"));
}
/**
* ici on retourne la liste des erreurs, si celle-ci est vide le controleur pourra executer
* la methode execute de notre Action (userSaisirAction)
*/
return erreurs;
}
} |
voici l action pour construire la liste :
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
| package app;
/***
* Cette classe va faire appel soit aux classes métier, aux classes de données.
* Elle retournera ensuite les données a la page
*/
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import service.Service;
import appHIB.Roles;
public class UserAjouterListRolesAction extends Action {
@SuppressWarnings({ "unchecked", "static-access" })
public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
System.out.println("Action");
String cible=new String("succes");
//ici mon formulaire est correct, je vais pouvoir interroger les données
@SuppressWarnings("unused")
Roles roles =null ;
Service service= new Service();
Collection<Roles> list=null;
try {
list = service.getAll();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(list==null) {
cible="pastrouve";
}
else{
httpServletRequest.setAttribute("list_roles",list);
}
return actionMapping.findForward(cible);
}
} |
voici struts-cofig.xml
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
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
<form-beans>
<form-bean name="UserSaisirBean" type="app.UserSaisirBean"/>
<form-bean name="UserModifierBean" type="app.UserModifierBean"/>
<form-bean name="UserSupprimerBean" type="app.UserSupprimerBean"/>
<form-bean name="UserAjouterBean" type="app.UserAjouterBean"/>
<form-bean name="RolesSaisirBean" type="appRoles.RolesSaisirBean"/>
<form-bean name="RolesAjouterBean" type="appRoles.RolesAjouterBean"/>
<form-bean name="RolesModifierBean" type="appRoles.RolesModifierBean"/>
<form-bean name="RolesSupprimerBean" type="appRoles.RolesSupprimerBean"/>
<form-bean name="UserAjouterListRolesBean" type="app.UserAjouterListRolesBean"/>
</form-beans>
<action-mappings>
<action path="/main" name="UserSaisirBean" scope="session" validate="true" input="/users/saisirUser.jsp" type="app.UserSaisirAction">
<forward name="succes" path="/users/ficheUser.jsp"/>
<forward name="pastrouve" path="/users/userNonTrouve.jsp"/>
</action>
<action path="/update" name="UserModifierBean" scope="session" validate="true" input="/users/modifierUser.jsp" type="app.UserModifierAction">
<forward name="succes" path="/users/ficheUser.jsp"/>
<forward name="pastrouve" path="/users/userNonTrouve.jsp"/>
</action>
<action path="/delete" name="UserSupprimerBean" scope="session" validate="true" input="/users/supprimerUser.jsp" type="app.UserSupprimerAction">
<forward name="succes" path="/users/suppressionUser.jsp"/>
<forward name="pastrouve" path="/users/userNonTrouve.jsp"/>
</action>
<action path="/create" name="UserAjouterBean" scope="session" validate="true" input="/users/ajouterUser.jsp" type="app.UserAjouterAction">
<forward name="succes" path="/users/ficheUser.jsp"/>
<forward name="pastrouve" path="/users/userNonTrouve.jsp"/>
</action>
<action path="/mainRoles" name="RolesSaisirBean" scope="session" validate="true" input="/roles/saisirRoles.jsp" type="appRoles.RolesSaisirAction">
<forward name="succes" path="/roles/ficheRoles.jsp"/>
<forward name="pastrouve" path="/roles/rolesNonTrouve.jsp"/>
</action>
<action path="/createR" name="RolesAjouterBean" scope="session" validate="true" input="/roles/ajouterUser.jsp" type="appRoles.RolesAjouterAction">
<forward name="succes" path="/roles/ficheRoles.jsp"/>
<forward name="pastrouve" path="/roles/rolesNonTrouve.jsp"/>
</action>
<action path="/updateR" name="RolesModifierBean" scope="session" validate="true" input="/roles/modifierUser.jsp" type="appRoles.RolesModifierAction">
<forward name="succes" path="/roles/ficheRoles.jsp"/>
<forward name="pastrouve" path="/roles/rolesNonTrouve.jsp"/>
</action>
<action path="/deleteR" name="RolesSupprimerBean" scope="session" validate="true" input="/roles/supprimerRoles.jsp" type="appRoles.RolesSupprimerAction">
<forward name="succes" path="/roles/suppressionRoles.jsp"/>
<forward name="pastrouve" path="/roles/rolesNonTrouve.jsp"/>
</action>
<action path="/UserListRoles" name="UserAjouterListRolesBean" type="app.UserAjouterListRolesAction" scope="request" validate="false">
<forward name="succes" path="/users/ajouterUser.jsp" redirect="false" />
<forward name="pastrouve" path="/users/ajouterUser.jsp" redirect="false" />
</action>
</action-mappings>
</struts-config> |
voici ma page index:
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
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="appHIB.Roles" %>
<html:html>
<jsp:useBean id="beanData" scope="request" class="appHIB.User" />
<!--
Ici on va lire les données de notre bean. (RetourneData)
-->
<head>
<title>index</title>
</head>
<body bgcolor="#ffffff">
<center><IMG SRC="logo.gif" WIDTH="500" HEIGHT="150" ></center>
<h1 align="center">Index<H1>
<table border"1" align="center">
<TR><TD>User :</TD><TD></TD>
<TR><TD>Creation :</TD><TD><html:link page="/UserListRoles.do">lien</html:link></TD></TR>
<!-- <TR><TD>Creation :</TD><TD><html:link page="/users/ajouterUser.jsp">lien</html:link></TD></TR>-->
<TR><TD>Mis à jour :</TD><TD><html:link page="/users/modifieUser.jsp">lien</html:link></TD></TR>
<TR><TD>Suppression:</TD><TD><html:link page="/users/supprimerUser.jsp">lien</html:link></TD></TR>
<TR><TD>Consultation :</TD><TD><html:link page="/users/saisirUser.jsp">lien</html:link></TD></TR>
<TR><TD>Roles :</TD><TD></TD>
<TR><TD>Creation :</TD><TD><html:link page="/roles/ajouterRoles.jsp">lien</html:link></TD></TR>
<TR><TD>Mis à jour :</TD><TD><html:link page="/roles/modifierRoles.jsp">lien</html:link></TD></TR>
<TR><TD>suppression :</TD><TD><html:link page="/roles/supprimerRoles.jsp">lien</html:link></TD></TR>
<TR><TD>Consultation:</TD><TD><html:link page="/roles/saisirRoles.jsp">lien</html:link></TD></TR>
</TABLE>
</body>
</html:html> |
Merci d'avance