我正在尝试在某些表单上使用 Struts2 jquery 插件进行 ajax 请求,但我在页面响应方面遇到问题。 struts 操作已验证并正确执行,但是当 jquery 获取响应时,它将响应设置为整个页面的 HTML...它将响应放在正确的位置,但它没有在正确的位置进行响应所有...这是jsp形式:
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<div class="columnbox">
<h2>Contact Us</h2>
<div id="contact">
<s:form id="contact_form" action="contact" method="post" cssClass="clearfix">
<label for="contact_user">Username / In-game name:</label>
<input type="text" id="contact_user" name="contactBean.username" class="field"
data-enter-click="sendbutton" maxlength="16" size="16" />
<div id="contact_response" class="response">
</div>
<sj:submit
formIds="contact_form"
id="sendbutton"
targets="contact_response"
value="Send"
button="true"
/>
</s:form>
</div>
</div>
这是 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 的问题......
感谢您的帮助
响应正是执行后结果返回的东西。无论配置什么结果以返回结果作为响应,无论实际返回哪种结果类型和结果代码,都取决于您的操作配置。
结果返回整个页面的问题是因为INPUT
验证失败时返回结果。您必须删除validation
来自堆栈的拦截器或者如果它是dispatcher
结果类型,更新location
执行结果之前结果配置的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)