【问题标题】:Configure different Action classes for two forms on one JSP in Struts 2在 Struts 2 中为一个 JSP 上的两个表单配置不同的 Action 类
【发布时间】:2026-02-06 20:50:01
【问题描述】:

我有一个 JSP 页面,它有两个带有提交按钮的表单。这两种形式如何配置不同的动作类?

例如:

form1 将按钮配置提交给classAform2 将按钮配置提交给classB

有可能吗?

【问题讨论】:

  • 当然。这一切都在 Struts2 文档中,在 struts 配置部分。

标签: forms configuration struts2 struts dmi


【解决方案1】:

简单到:

<s:form>
    ...
    <s:submit action="Action1" />
</s:form>

<s:form>
    ...
    <s:submit action="Action2" />
</s:form>

您甚至可以为同一个&lt;s:form&gt; 使用不同的&lt;s:submit&gt; 按钮

<s:form>
    ...
    <s:submit action="Action1" />
    <s:submit action="Action2" />
</s:form>

【讨论】:

    【解决方案2】:

    表单和按钮映射到动作,动作映射到类的方法。

    在 JSP 中有许多但没有嵌套的表单可以使用 action 属性映射到操作。

    按钮submit 通常不应包含任何actionmethod 属性,这意味着它可能会反转动态通信的动作方向。

    要将此功能与默认操作映射器一起使用,您必须打开 DMI

    您可以将许多操作映射到具有不同名称的同一个方法,但您不能在同一个命名空间中使用一个操作来映射不同的类或方法。这些类或方法应该位于不同的命名空间中。

    表单也是如此,您可以将表单或按钮映射到任何操作。许多表单可以映射到相同的操作,但您不能将表单映射到不同的操作。为此,您必须映射按钮,或使用 javascript 修改 action 属性并使用不同的操作来更改映射。

    【讨论】:

      最近更新 更多