Struts <s:submit>和Struts-jquery <sj:submit>不能以相同的形式工作吗?</sj:submit> </s:submit>

时间:2013-07-03 17:08:15

标签: jquery struts2 struts2-jquery dmi

Struts标记<s:submit><sj:submit>是否在同一表单上运行?我已经有Struts按钮<s:submit>,但现在我添加了<sj:submit>。所以,Struts2-jQuery插件按钮运行良好,但Struts <s:submit>无效。

<head>
<sj:head/>
</head>
<s:form id="myForm" action="part!list">
   <s:submit  action="part" method="list" />
</s:form>
<sj:submit targets="result" formId="myform"/>

请澄清......

1 个答案:

答案 0 :(得分:1)

<s:submit>适用于表单,如果它位于<s:form><form>标记的正文中。要使其正常工作,请使用action属性将表单映射到操作。您还可以使用<s:url>构建在表单的action属性中使用的网址,即使使用参数也能正确构建网址。但是,如果您在<s:submit>代码中映射操作,那么您只需使用一个属性actionmethod。这些是动作映射器使用的特殊参数。在第一种情况下,将覆盖表单action,在第二种情况下,将覆盖操作方法。这意味着action标记中的属性method<submit>仅用于覆盖默认的表单操作映射。它很少使用,需要DMI,如果你有多个具有不同方法的按钮,请考虑使用method属性来覆盖表单动作映射。

修改

实施例

<head>
   <sj:head/>
</head>
<s:url var="myUrl" action="part" method="list"/>
<s:form id="myForm" action="%{#myUrl}" method="POST">
   <s:submit  action="part2" />
   <s:submit  method="list2" />
   <s:submit />
</s:form>

<sj:submit targets="result" formId="myForm"/>

第一种情况中的上述s:submit使用名为part2的肌动蛋白提交, 第二个操作名称part和方法list2, 第三个是默认操作名称part和方法list Ajax称之为第三种情况。

如果您的操作已映射到方法list,那么您可以通过

简化网址
<s:url var="myUrl" action="part"/>