Foros de discusión

Problème avec Struts et ses actions

Ben Dum, modificado hace 12 años.

Problème avec Struts et ses actions

New Member Mensajes: 7 Fecha de incorporación: 14/02/12 Mensajes recientes
Bonjour,

Je rencontre des difficultés à mettre en place une simple portlet Struts.
Le problème réside dans l'enchaînement des actions struts avec un paramètre passé via l'URL (j'utilise DispatchAction).
Voici ce que j'ai codé :

struts-config.xml :

<struts-config>
        <!-- Action Mappings -->
        <action-mappings>
                <!-- Sample Struts -->
                <action path="/view" forward="/view.jsp" validate="false" />
                <action path="/bravo" forward="/bravo.jsp" validate="false" />
                <action path="/action1" type="com.test.Action1" scope="request" parameter="param" validate="false">
                        <forward name="INIT" path="/bravo.do" redirect="false" />
                        <forward name="INIT2" path="/action2.do?param=init" redirect="false" /> 
                </action>
                <action path="/action2" type="com.test.Action2" scope="request" parameter="param" validate="false">
                		<forward name="INIT" path="/bravo.do" redirect="false" />
                </action>    
        </action-mappings>
</struts-config>


com.test.Action1.java :

public class Action1 extends DispatchAction {
	public ActionForward init(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("INIT");
		return (mapping.findForward("INIT"));
	}

	public ActionForward init2(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("INIT2");
		return (mapping.findForward("INIT2"));
	}


com.test.Action2.java :

	public ActionForward init(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
	throws Exception {
		System.out.println("Action2");
		return mapping.findForward("INIT");
	}


view.jsp :

	<html:link action="action1.do?param=init">init1</html:link>
	<html:link action="action1.do?param=init2">init2</html:link>


Pour information, mon lien "init1" de view.jsp est bien fonctionnel contrairement au lien "init2" qui enchaîne des actions.
Quelqu'un aurait-il une idée de l'origine du problème ou de la solution à utiliser ? Merci

Voici l'erreur que je rencontre :

Error	Request[/action2] does not contain handler parameter named 'param'. This may be caused by whitespace in the label text.
Error Type	javax.servlet.ServletException
Stacktrace	 org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:194)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:242)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:167)
thumbnail
Leo Pratlong, modificado hace 12 años.

RE: Problème avec Struts et ses actions

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
Bonjour,

je ne suis pas ultra familier de Struts, il y a longtemps que je n'en ai pas fait.
Cela dit, dans le struts-config.xml, j'ai l'impression que lorsque votre "init2" est appelé, il forward vers une autre action (alors que le "init1" forward vers bravo.do qui n'est pas mappé). Je me demande si l'ajout de cela ne redirige pas vers votre action 2. En tous cas, pour que ça boucle sur plusieurs actions, à mon avis, c'est qu'un forward est mal configuré à un endroit.
En espérant que ça aide malgré tout, même si je n'y connais pas grand chose là dessus emoticon.

Léo
Ben Dum, modificado hace 12 años.

RE: Problème avec Struts et ses actions

New Member Mensajes: 7 Fecha de incorporación: 14/02/12 Mensajes recientes
Bonjour Léo,

Tout d'abord, merci pour avoir pris mon problème en considération.
Je suis d'accord avec toi, je n'ai aucun problème pour utiliser une action qui redirige sur une jsp. Cependant, je souhaiterais pouvoir dans un premier temps pouvoir chaîner les actions avec des paramètres dans l'URL. Pour être un peu plus concret, je dispose déjà d'une application web utilisant Struts sous ce mode de fonctionnement et je souhaiterais la mettre sous Liferay cependant je n'arrive pas à gérer la navigation côté serveur.
thumbnail
Leo Pratlong, modificado hace 12 años.

Déplacement du thread

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
J'ai déplacé le thread dans la section "Développement".