Struts 提交表单时未调用 2 个操作方法

Struts 2 action method not invoked upon form submission

function test() {
    var obj = document.createElement("FORM");
    obj.action="SomeAction!thisMethod.action";
    obj.submit();
}

但是,根本没有调用操作方法。

动作映射在 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();