2010-10-26 6 views
1

Je suis en train d'apporter des modifications à une application Web existante basée sur Struts1 - qui est déjà composée de diverses formes & actions.Struts - Quels changements sont nécessaires pour ajouter une nouvelle JSP?

Ce que je suis en train de faire est

  • Ajouter quelques pages pour la version mobile du site.
  • Par exemple, je souhaite ajouter une page JSP contenant un formulaire avec quelques champs (identique à celui de la version PC ) avec un bouton de soumission. Sur soumettre, je voudrais appeler la même classe ACTION qui a manipulé le formulaire dans la version PC .

Est-ce possible? Veuillez me diriger vers les liens qui expliquent ce qui précède.


Edit1:

quelques lignes de mes struts-config.xml action-mappings.

<action path="/signupPC" 
      name="signupPCForm" 
      validate="true" 
      input="/signupFailedPC.jsp"> 
     <forward name="success" path="/signupSuccessPC.jsp" /> 
     <forward name="failure" path="/signupFailedPC.jsp" /> 
    </action> 


@Nathan Comment puis-je ajouter pages spécifiques mobiles ici?

Dois-je ajouter une nouvelle action path = "/signupMobile" ici? - ce qui signifie ajouter < html: formulaire action = "/ signupMobile.do" method = "post"> sur mon portable jsp?

J'espère ne pas ajouter un nouveau grain de formulaire que je voudrais utiliser même Form.java signifiait pour la version sur PC.

Répondre

1

Dans votre struts-config, vous disposez d'un ensemble d'éléments de mappage d'action. Pour chaque actionMapping vous avez un ou plusieurs éléments forward. Chaque forward mappe une URL relative dans l'application à une chaîne. Ajouter un transfert spécifique au mobile au mappage d'action. ActionMapping a une entrée pour chaque forward pour ce mapping, vous les recherchez par l'identifiant de chaîne que vous lui donnez dans struts-config. Ensuite, dans votre Action, vous aurez besoin de code pour extraire le bon ActionForward de l'ActionMapping en fonction de si l'action est appelée depuis une URL de PC ou une URL mobile.

+0

Merci @Nathan - pourriez-vous donner un exemple? Je suis nouveau sur les jambes. –

+1

@Van de Graff: Cette réponse a été modifiée pour une approche plus simple. Découvrez votre webapp et voyez si vous reconnaissez les pièces dont je parle. –

2

Nathan vous a dit tout ce que vous devez savoir, je suis juste ajouter un exemple de la façon dont j'écrire le fichier struts-config:

<action path="/signup" 
     name="signupForm" 
     validate="true" 
     input="/signup.jsp"> 
     <forward name="successPC" path="/PC/signupSuccess.jsp" /> 
     <forward name="failurePC" path="/PC/signupFailed.jsp" /> 
     <forward name="successMobile" path="/mobile/signupSuccess.jsp" /> 
     <forward name="failureMobile" path="/mobile/signupSuccess.jsp" /> 
</action> 

Vous appelez la même action (méthode de la classe java) et en fonction de l'appareil qui a appelé la méthode, vous retransmettez sur le PC les succès ou les pages Web de succès mobile.

+0

Merci @carlos. qu'en est-il de ** input = "/ signup.jsp" **? une ** version mobile ** ne devrait-elle pas être spécifiée également? Le ** name = "signupForm" ** fait ici référence au bean FORM utilisé pour ** les versions MOBILE et PC ** - est-ce exact? –

+1

Eh bien, j'ai ajouté l'entrée parce que vous l'aviez dans votre exemple. Je crois que je ne l'ai jamais utilisé dans aucune de mes actions mais je ne peux pas être sûr de cela. En lien avec votre deuxième question: oui, cela fait référence au bean java que vous avez créé et cela devrait être le même tant que le comportement est le même pour les PC et les appareils mobiles. –

Questions connexes