Struts : Exception creating bean of class

Struts : Exception creating bean of class - Java - Programmation

Marsh Posté le 06-08-2010 à 19:21:44    

Bonjour je viens vous soumettre un petit problème qui me bloque depuis deux jours :
 
J'essaye de créer sous Java un formulaire ou l'on rentre un password et un user name.
Malheureusement je n'arrive pas le faire marché. Alors que c'est des sources venant d'un bouquin (copié quoi) et que mes imports sembles tous bon.
 
Voici mes fichiers.
 
 
LoginForm.jsp
 

Code :
  1. <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
  2. <%@ taglib uri="/tags/struts-html" prefix="html" %>
  3. <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
  4. <html:html>
  5. <head>
  6. <title>Page Login</title>
  7. </head>
  8. <body bgcolor="white">
  9. <html:form action="/InputSubmit">
  10. Login <html:text property="login"></html:text><br>
  11. Mot de passe <html:text property="mdp"></html:text><br>
  12. <html:submit value="Soumettre"></html:submit>
  13. </html:form>
  14. </body>
  15. </html:html>


 
 
 
L'actionForm
 

Code :
  1. package fr.edition.eni.actionform;
  2. import org.apache.struts.action.ActionForm;
  3. public class LoginForm extends ActionForm {
  4. /**
  5.  *  
  6.  */
  7. private static final long serialVersionUID = 1L;
  8. private String login = null;
  9. private String mdp = null;
  10. public String getLogin() {
  11.  return login;
  12. }
  13. public void setLogin(String login) {
  14.  this.login = login;
  15. }
  16. public String getMdp() {
  17.  return mdp;
  18. }
  19. public void setMdp(String mdp) {
  20.  this.mdp = mdp;
  21. }


 
Le Modèle
 

Code :
  1. package fr.edition.eni.javabeans;
  2. import java.io.Serializable;
  3. public class Login implements Serializable {
  4. /**
  5.  *  
  6.  */
  7. private static final long serialVersionUID = 1L;
  8. private String login;
  9. private String mdp;
  10. public String getLogin() {
  11.  return login;
  12. }
  13. public void setLogin(String login) {
  14.  this.login = login;
  15. }
  16. public String getMdp() {
  17.  return mdp;
  18. }
  19. public void setMdp(String mdp) {
  20.  this.mdp = mdp;
  21. }
  22. }


 
Le contrôleur
 

Code :
  1. package fr.edition.eni.action;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.apache.commons.beanutils.BeanUtils;
  5. import org.apache.struts.action.Action;
  6. import org.apache.struts.action.ActionForm;
  7. import org.apache.struts.action.ActionForward;
  8. import org.apache.struts.action.ActionMapping;
  9. import fr.edition.eni.actionform.LoginForm;
  10. import fr.edition.eni.javabeans.Login;
  11. public class LoginAction extends Action{
  12. public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws Exception{
  13.  LoginForm monLoginForm = (LoginForm) form;
  14.  Login monLogin = new Login();
  15.  BeanUtils.copyProperties(monLogin, monLoginForm);
  16.  request.setAttribute(mapping.getAttribute(), monLogin);
  17.  if (monLogin.getLogin().equals("jcf" ) && monLogin.getMdp().equals("jcf" )){
  18.   return mapping.findForward("success" );
  19.  }
  20. return mapping.findForward("erreur" );
  21. }
  22. }


 
ainsi que le fichier struts-config.xml
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE struts-config PUBLIC
  3.  "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
  4.         "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
  5. <struts-config>
  6. <form-beans>
  7.  <form-bean
  8.   name="loginForm"
  9.   type="fr.edition.eni.actionform.LoginForm"/>
  10. </form-beans>
  11.  <action-mappings>
  12.   <action
  13.    path="/Welcome"
  14.    forward="/pages/Welcome.jsp"/>
  15.   <action
  16.    path="/InputSubmit"
  17.    type="fr.edition.eni.action.LoginAction"
  18.    name="loginForm"
  19.    scope="request"
  20.    attribute="login"
  21.    input="/pages/loginForm.jsp">
  22.     <forward name ="success" path="/pages/loginSuccess.jsp"></forward>
  23.     <forward name ="erreur" path="/pages/erreur.jsp"></forward>
  24.   </action>
  25.  </action-mappings>
  26.  <message-resources parameter="java.MessageResources" />
  27.  
  28. </struts-config>


 
Et enfin l'erreur à l'ouverture du formulaire:
 

Code :
  1. org.apache.jasper.JasperException: Exception in JSP: /pages/loginForm.jsp:10
  2. 7: <title>Page Login</title>
  3. 8: </head>
  4. 9: <body bgcolor="white">
  5. 10: <html:form action="/InputSubmit">
  6. 11: Login <html:text property="login"></html:text><br>
  7. 12: Mot de passe <html:text property="mdp"></html:text><br>
  8. 13: <html:submit value="Soumettre"></html:submit>
  9. Stacktrace:
  10. org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
  11. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
  12. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
  13. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
  14. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  15. root cause
  16. javax.servlet.ServletException: Exception creating bean of class fr.edition.eni.actionform.LoginForm: {1}
  17. org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
  18. org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
  19. org.apache.jsp.pages.loginForm_jsp._jspService(loginForm_jsp.java:81)
  20. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
  21. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  22. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
  23. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
  24. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
  25. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  26. root cause
  27. javax.servlet.jsp.JspException: Exception creating bean of class fr.edition.eni.actionform.LoginForm: {1}
  28. org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:487)
  29. org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
  30. org.apache.jsp.pages.loginForm_jsp._jspx_meth_html_005fform_005f0(loginForm_jsp.java:130)
  31. org.apache.jsp.pages.loginForm_jsp._jspx_meth_html_005fhtml_005f0(loginForm_jsp.java:104)
  32. org.apache.jsp.pages.loginForm_jsp._jspService(loginForm_jsp.java:72)
  33. org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
  34. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  35. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
  36. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
  37. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
  38. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


 
 
Et voila sur quoi je galère depuis deux jours (j'ai retourné le truc dans tout les sens et pas moyen de le faire marcher)
 
A l'aiiiiiiide  :cry:  
 
D'avance merci  ;)


Message édité par seba1492 le 06-08-2010 à 19:23:39
Reply

Marsh Posté le 06-08-2010 à 19:21:44   

Reply

Marsh Posté le 12-08-2010 à 20:42:27    

Bon voila j'ai trouvé.
 
Pour ceux que ca peux aider dans le futur:
Il s'agit en fait d'une mauvaise instanciation de mon objet dans le contrôleur.
 
A la ligne 19 Du code de mon controlleur (dans mon premier post):
 

Code :
  1. LoginForm monLoginForm = (LoginForm) form;


 
J'ai mis

Code :
  1. LoginForm monLoginForm =  new LoginForm();
  2. monLoginForm =(LoginForm) form;


 
Et ca marche.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed