1

Struts 标签<s:submit>和 Struts jQuery 标签<sj:submit>都以相同的方式提交。我的意思是,他们刷新页面并转发到另一个页面。但我认为 Struts jQuery 标签实现了 Ajax,所以页面在提交时不应该改变。我对么?

我已经在表单中实现了这两个标签,同时提交两者的工作方式相同。

<s:form action="part!list" >
  <s:submit  action="part" method="list" />
</s:form>

<s:form action="part!list" >
  <sj:submit />
</s:form>

如果我使用<sj:submit>它可以工作,但是我以相同的形式添加了一些 struts 标签按钮<s:submit>,那么它就不起作用了。那么,Struts 标签不起作用?

4

3 回答 3

1

您可能忘记<sj:head/><head>. 此标记将 JQuery 链接stylesheet到页面和其他初始内容,没有它就不会进行 Ajax 调用。请参阅正确提交SubmitTag的示例。

如果您通过<sj:submit>页面进行 Ajax 调用,则不应刷新,但targets可以在成功结果时更新。如果页面头部没有包含 JQuery,我认为表单不会发出任何 HTTP 请求,它的行为就像您没有包含该action属性一样。

于 2013-07-03T09:50:51.183 回答
1

只需id在表单标签中添加属性并在标签中targets添加属性<sj:submit>

<s:form id="myForm" action="part!list">
  <sj:submit targets="result"/>
</s:form>
于 2013-07-03T09:15:03.870 回答
0

<s:submit/>如果不需要触发 ajax 调用,您应该使用。<s:submit/>使用 html 机制提交表单,但<sj:submit />正在进行 ajax 调用,请查看源代码HERE,它解释了它是如何工作的。如果你需要这个表单来进行 ajax 调用,那么就像@AleksandrM 说的那样,定义属性targets = "result",那么你应该有类似的东西<div id="result"/>,其中包含 ajax 调用的结果。

于 2013-07-03T09:39:28.443 回答