Struts标签之间的区别:提交和Struts jQuery标签sj:submit

时间:2013-07-03 08:33:02

标签: jsp struts2 struts2-jquery

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标签不起作用吗?

3 个答案:

答案 0 :(得分:1)

只需在表单标记中添加id属性,在targets标记中添加<sj:submit>属性。

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

答案 1 :(得分:1)

您可能忘记在<sj:head/>的正文中添加<head>标记。这个标签将JQuery stylesheet链接到页面和其他初始事物上,而没有进行Ajax调用。请参阅正确提交SubmitTag的示例。

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

答案 2 :(得分:0)

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