【发布时间】:2026-02-06 20:50:01
【问题描述】:
我有一个 JSP 页面,它有两个带有提交按钮的表单。这两种形式如何配置不同的动作类?
例如:
form1 将按钮配置提交给classA 和form2 将按钮配置提交给classB。
有可能吗?
【问题讨论】:
-
当然。这一切都在 Struts2 文档中,在 struts 配置部分。
标签: forms configuration struts2 struts dmi
我有一个 JSP 页面,它有两个带有提交按钮的表单。这两种形式如何配置不同的动作类?
例如:
form1 将按钮配置提交给classA 和form2 将按钮配置提交给classB。
有可能吗?
【问题讨论】:
标签: forms configuration struts2 struts dmi
简单到:
<s:form>
...
<s:submit action="Action1" />
</s:form>
<s:form>
...
<s:submit action="Action2" />
</s:form>
您甚至可以为同一个<s:form> 使用不同的<s:submit> 按钮
<s:form>
...
<s:submit action="Action1" />
<s:submit action="Action2" />
</s:form>
【讨论】:
表单和按钮映射到动作,动作映射到类的方法。
在 JSP 中有许多但没有嵌套的表单可以使用 action 属性映射到操作。
按钮submit 通常不应包含任何action 或method 属性,这意味着它可能会反转动态通信的动作方向。
要将此功能与默认操作映射器一起使用,您必须打开 DMI。
您可以将许多操作映射到具有不同名称的同一个方法,但您不能在同一个命名空间中使用一个操作来映射不同的类或方法。这些类或方法应该位于不同的命名空间中。
表单也是如此,您可以将表单或按钮映射到任何操作。许多表单可以映射到相同的操作,但您不能将表单映射到不同的操作。为此,您必须映射按钮,或使用 javascript 修改 action 属性并使用不同的操作来更改映射。
【讨论】: