通过ajax发布表单,Struts ActionForm为空

时间:2014-05-27 18:17:16

标签: jquery ajax struts-1 actionform

我正在转换JSP以使用ajax发布到操作,但是当请求通过时ActionForm是空白的。我不确定发生了什么,因为我应该从我读过的内容中正常工作。如果我删除了ajax页面提交就好了。 更新:调试时,data var显示表单的正确字符串。我还添加了Struts配置。

HTML:

<html:form action="/saveSomething" method="POST"> ... </html:form>

JS:

$('form[name="form_name"]').submit(function(e) {
    e.preventDefault();
    var url = $('form[name="form_name"]').attr('action');
    var data = $('form[name="form_name"]').serialize();
    var posting = $.post(url, data);
});

Struts配置:

<action name="form_name" path="/notesPage" scope="request" type="com.action.Action" validate="false" input="/jsp/notesPage.jsp">
          <forward name="success" path="/jsp/notesPage.jsp" />      
        </action>

这是Struts 1,正如我所说,如果我删除JS表单提交方法一切正常,所以我不认为这是我的映射或与Struts有关。

1 个答案:

答案 0 :(得分:0)

您的表单没有名称属性:

$('form[name="form_name"]')

所以你可以这样做:

$('form').submit(function(e) {
    e.preventDefault();
    var url = $(this).attr('action'); // get the action of current context form
    var data = $(this).serialize(); // get the data of current context form
    var posting = $.post(url, data);
}); // <---this is the proper closing of submit function

我希望您将此代码放在文档就绪块中。