2009-08-13 5 views
0

Je développe actuellement avec Struts 1 une application web. J'ai récemment commencé à utiliser la technologie AJAX et je suis coincé avec quelque chose.Comment obtenir un bean de forme Struts dans une classe Action en utilisant AJAX

J'appelle une méthode d'action (via AJAX) pour valider mon formulaire mais aucune valeur n'est changée dans le bean de formulaire quand il arrive à la méthode d'action. Je suppose que c'est parce que l'appel de l'action via AJAX ne soumet pas le formulaire à la méthode d'action. Ai-je raison? J'ai essayé d'envoyer des valeurs de formulaire en tant qu'objet JSON, mais je ne peux pas l'analyser dans la classe d'action parce que; pour autant que je sache, j'ai besoin d'une bibliothèque externe pour le faire et, malheureusement, les politiques de l'entreprise ne me permettent pas d'utiliser des bibliothèques externes. Y a-t-il un autre moyen d'envoyer le formulaire?

Merci à l'avance, Carlos

Répondre

0

Oui, vous avez raison. Tout ce qui se passe avec AJAX est une demande envoyée à une URL particulière, pas une soumission de formulaire. La manière la plus simple de gérer cela est d'ajouter les champs que vous voulez valider en tant que paramètres dans l'URL puis de les retirer de la requête HTTP dans le serveur (je ne me souviens pas de la facilité avec Struts).

+0

Aha, je vois. J'ai pensé à ça, mais je voulais l'éviter car la forme est assez grande. Je vais essayer de cette façon et voir ce qui se passe. Merci pour votre réponse. –

+0

Je suis sûr qu'il y a un moyen d'obtenir les paramètres dans la requête HTTP (qui est où ils sont avec un formulaire de soumission (je pense)) et l'effet sera le même côté serveur. –

0

Je pense que cela va faire pour vous.

request = $.ajax({ 
     url :'/your_action.do', 
     type :'post', 
     cache:false, 
     data :$("#formId").serialize() 
}); 

le champ des données envoient les attributs ActionForm requis.

Questions connexes