bonsoir et merci d'avance pour votre aide.
Je vous explique mon probleme : J'essaye de me former à Struts. Je travaille sous eclipse.
J'essaye d'afficher un formulaire d'identification, mais ça ne marche pas.
Sous eclipse j'ai cette erreur la :
ATTENTION: Resource org/apache/struts/action/ActionResources_fr.properties Not Found.
GRAVE: Error creating form bean of class fr.testStruts.actionForm.LoginForm java.lang.NullPointerException
at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)
at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:254)
.....
Le probleme c'est que si j'essaye d'afficher un formulaire avec des valises html ça marche.
le fichier loginForm.jsp<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<html:html>
<head>
<title>Identification</title>
</head>
<body>
<html:form action="/InputSubmit">
Login <html:text property="login"></html:text> <br>
Mot de passe <html:text property="mdp"></html:text> <br>
<html:submit value="Envoyer"></html:submit>
</html:form>
</body>
</html:html>
le fichier web xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Struts Blank Application</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/pages/loginForm.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>
le fichier struts-config.xml<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean
name="loginForm"
type="fr.testStruts.actionForm.LoginForm"/>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="welcome"
path="/Welcome.do"/>
</global-forwards>
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
<action
path="/InputSubmit"
type="fr.testStruts.action.LoginAction"
name="loginForm"
attribute="login"
scope="request"
input="/pages/loginForm.jsp">
<forward name="success" path="/pages/loginSuccess.jsp"></forward>
<forward name="erreur" path="/pages/erreur.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="java.MessageResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
la classe LoginActionpackage fr.testStruts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
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 fr.testStruts.actionform.LoginForm;
import fr.testStruts.javabeans.Login;
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginForm monLoginForm = (LoginForm) form;
Login monLogin = new Login();
BeanUtils.copyProperties(monLogin, monLoginForm);
request.setAttribute(mapping.getAttribute(), monLogin);
if (monLogin.getLogin().equals("azerty") && monLogin.getMdp().equals("azerty")) {
return mapping.findForward("success");
}
return mapping.findForward("erreur");
}
}
la classe LoginFormpackage fr.testStruts.actionform;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm {
private String login = null;
private String mdp = null;
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the mdp
*/
public String getMdp() {
return mdp;
}
/**
* @param mdp the mdp to set
*/
public void setMdp(String mdp) {
this.mdp = mdp;
}
}
la classe Login
package fr.testStruts.javabeans;
import java.io.Serializable;
public class Login implements Serializable {
private String login;
private String mdp;
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the mdp
*/
public String getMdp() {
return mdp;
}
/**
* @param mdp the mdp to set
*/
public void setMdp(String mdp) {
this.mdp = mdp;
}
}