Struts2 jquery插件使用整个页面的HTML响应ajax请求

我试图在我的一些表单上使用Struts2 jquery插件来处理ajax请求,但是我对页面的响应有问题。 struts动作被validation并正确执行,但是当jquery获得响应时,它将响应设置为整个页面的HTML …它将响应放在正确的位置,但它没有响应正确的事情在all …这是jsp表单:

    

Contact Us

这是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 String 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; } } 

我很确定标签应该是它应该是什么样的。 请求正在正确发送,并且正在收到响应。 这看起来像jquery的问题…感谢您的帮助

响应完全是执行后结果返回的内容。 无论结果被配置为将结果作为响应返回,实际返回的结果类型和结果代码都取决于您的操作配置。

您遇到的问题是返回整个页面的结果是因为validation失败时会返回INPUT结果。 您必须从堆栈中删除validation拦截器,或者如果它是dispatcher结果类型,请在执行结果之前更新结果配置的location属性。