在提交表单时未调用struts2操作方法

Struts 2 action method not invoked upon form submission

本文关键字:调用 struts2 操作方法 提交 表单      更新时间:2023-09-26
function test() {
    var obj = document.createElement("FORM");
    obj.action="SomeAction!thisMethod.action";
    obj.submit();
}

但是,根本不调用action方法。

动作映射在struts.xml中看起来不错,但如果你想知道,

<action name="SomeAction" class="com.test.SomeAction">
    <result ...>...</result>
</action>

它的工作很好,如果我有一个Struts2表单在该页,但当没有表单,我想调用一个虚拟表单对象的动作方法,它不起作用。

我觉得我在表单对象中缺少了一些东西。

您需要在调用submit()之前向documentbody添加一个新烘焙的表单。

document.body.appendChild(obj);

在Struts2 s:form属性是自动生成的。您不需要所有这些属性来提交带有虚拟表单元素的表单。

如果你使用jQuery,你可以使用

$("<form>", {    
    "action": "SomeAction!thisMethod.action"
}).appendTo(document.body).submit();