J’essaie d’utiliser le plug-in jquery Struts2 pour les demandes ajax sur certains de mes formulaires, mais la réponse à la page me pose problème. L’action struts est validée et exécutée correctement, mais lorsque jquery obtient une réponse, il définit la réponse comme étant le code HTML de la page entière … Il met la réponse au bon endroit, mais ne répond pas avec la bonne chose tous … Voici le formulaire jsp:
Contact Us
Et voici un extrait de la classe contactAction:
public class ContactAction extends ActionSupport { private static final long serialVersionUID = -5484167219440627408L; private static final Log log = LogFactory.getLog(ContactAction.class); private ContactBean contactBean; @Override public Ssortingng execute() throws Exception { log.info("TEST 4"); //Do email stuff addActionMessage(Constants.EMAIL_SENT); log.info(this.getActionMessages()); return Action.SUCCESS; } @Override public void validate() { System.out.println("TEST"); log.info("TEST 2"); //do validation if (contactBean == null) { addActionError(""); } else if (contactBean.getUsername() == null || contactBean.getUsername().isEmpty()) { addActionError(Constants.NO_USERNAME); } log.info(this.getActionErrors()); } public ContactBean getContactBean() { return contactBean; } public void setContactBean(ContactBean contactBean) { this.contactBean = contactBean; } }
Je suis à peu près sûr que le tag est exactement comme il se doit. La demande est correctement envoyée et la réponse est en cours de réception. Cela ressemble à un problème avec le jQuery … Merci pour votre aide
La réponse est exactement ce qui est retourné par le résultat après son exécution. Quel que soit le résultat configuré pour renvoyer le résultat sous forme de réponse, quel que soit le type de résultat et le code de résultat renvoyé, tout dépend de la configuration de votre action.
Le problème que vous avez et qui renvoie une page entière à la suite est que le résultat INPUT
est renvoyé lorsque la validation échoue. Vous devez supprimer l’intercepteur de validation
de la stack ou, s’il s’agit d’un type de résultat du dispatcher
, mettre à jour l’atsortingbut location
de la configuration du résultat avant que le résultat ne soit exécuté.