Bonjour,
J'ai un petit soucis pour la création d'un ActionMapping personnalisé avec Struts v1.2.7
Qqu'un peut m'aider ? Voici :
Mon 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>
<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>mapping</param-name>
<param-value>appli.MonActionMapping</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
</web-app>
Mon Struts-config.xml :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="lookupForm" type="monAppli.LookupForm" />
</form-beans>
<action-mappings>
<action path="/Lookup"
type="appli.LookupAction"
name="lookupForm"
validate="true"
input="/index.jsp"
>
<set-property property="logResultats" value="true" />
<forward name="succes" path="/cotation.jsp"/>
<forward name="echec" path="/index.jsp"/>
</action>
</action-mappings>
<message-resources parameter="monAppli.ApplicationResources"/>
</struts-config>
Ma classe utilisant un objet étendu par ActionMapping :
package appli;
import java.io.IOException;
import javax.servlet.ServletException;
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 org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionError;
public class LookupAction extends Action {
protected Double getCotation(String symbole){
if (symbole.equalsIgnoreCase("SUNW")){
return new Double(25.00);
}
return null;
}
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
MonActionMapping monMapping =(MonActionMapping)mapping;
Double cours = null;
//Cible par défaut
String cible = new String("succes");
String symbole = null;
if ( form != null ) {
//Utilisation de LookupForm pour obtenir les paramètres de la requête
LookupForm lookupForm = (LookupForm)form;
symbole = lookupForm.getSymbole();
cours = getCotation(symbole);
}
//Cible en cas d'echec
if ( cours == null ){
cible = new String("echec");
ActionErrors erreurs = new ActionErrors();
erreurs.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.symbole.inconnu", symbole));
//Signalement des erreurs à la page d'origine if (!erreurs.isEmpty()){
saveErrors(request, erreurs);
}
}else{
if (monMapping.getLogResultats()){
System.err.println("SYMBOLE:"+symbole+" Cours:"+cours);
}
request.setAttribute("COURS", cours);
}
//Transmission à la vue appropriée
return (mapping.findForward(cible));
}
}
LE SOUCIS :
exception
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.index_jsp._jspService(index_jsp.java:112)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
cause mère
javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:741)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.jsp.index_jsp._jspx_meth_html_form_0(index_jsp.java:143)
org.apache.jsp.index_jsp._jspService(index_jsp.java:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
Me suis je trompé dans la configuration du struts-config.xml ?
DarkWark
Partager