2015-03-27 3 views
0

Mon exigence est que j'ai un formulaire caché d'où j'appelle une méthode de poignée. Avec la méthode du handle, je mets le succès et l'url de l'erreur en tant que valeurs cachées.ATG Formhandler: Nécessité de définir des valeurs avant d'appeler la méthode du handle

<dsp:form action="blank.jsp" method="post" formid="UNIQUE_FORM_ID"> 
    <dsp:input bean="FormHandler.commitOrder" type="hidden" value="submit" /> 
    <dsp:input bean="FormHandler.commitOrderSuccessURL" type="hidden" value="SOME_VALUE" /> 
    <dsp:input bean="FormHandler.commitOrderNotReadyURL" type="hidden" value="SOME_VALUE" /> 
    </dsp:form> 

J'ai besoin de régler la successurl et errorUrl avant d'appeler la méthode de la poignée.

J'ai essayé de donner la priorité, mais ça ne marche toujours pas.

Merci, Neenu

+0

Notez que vous devez rebondir votre serveur après avoir ajouté les attributs 'priority =" ... "', la compilation normale de la page jsp ne l'utilisera pas – Piran

Répondre

0

Voici un extrait de code que je l'ai testé et fonctionne.

<dsp:importbean bean="/atg/commerce/order/purchase/CommitOrderFormHandler"/> 

<dsp:form action="blank.jsp" method="post" formid="commitForm"> 
    <dsp:input bean="CommitOrderFormHandler.commitOrderSuccessURL" type="hidden" value="success.jsp" /> 
    <dsp:input bean="CommitOrderFormHandler.commitOrderErrorURL" type="hidden" value="failure.jsp" /> 
    <dsp:input id="submitFormInput" bean="CommitOrderFormHandler.commitOrder" type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"/> 
</dsp:form> 

<%-- 
    If your form (including the submit button) is hidden, 
    then I assume that elsewhere on the page, you have some 
    other way to trigger the submission of your hidden form. 
--%> 
<button type="button" onclick="document.getElementById('submitFormInput').click()">Click Me!</button> 

Quelques points clés ici:

  1. Assurez-vous d'importer le gestionnaire de formulaire que vous utilisez.
  2. Assurez-vous que le gestionnaire de formulaires que vous utilisez possède une variable d'instance et un getter/setter public pour chaque URL de succès/erreur que vous essayez de définir.
  3. Vous devriez avoir un <dsp:input> de type = « soumettre » et bean="<form handler method you are trying to call> ». Si cela doit être caché, vous pouvez le cacher en utilisant le CSS.
  4. Dans mon exemple de code que j'ai inclus une balise HTML <button> pour soumettre le formulaire, mais vous pouvez le remplacer par votre méthode de soumission
+0

J'ai trouvé le type = "submit" n'a jamais fonctionné, si je suis passé à type = "hidden", alors ça fonctionne parfaitement –