Struts 标签 <s:submit> 和 Struts jQuery 标签 <sj:submit> 有什么区别?

问题描述 投票:0回答:3

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

jsp struts2 struts2-jquery
3个回答
1
投票

您可能忘记在

<sj:head/>
的正文中包含
<head>
标签。该标签将 JQuery
stylesheet
链接到页面和其他初始内容上,没有它就不会进行 Ajax 调用。查看正确提交的示例
<sj:submit>

如果您通过

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


1
投票

只需在表单标签中添加

id
属性,并在
targets
标签中添加
<sj:submit>
属性即可。

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

0
投票

如果不需要触发ajax调用,则应该使用

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

© www.soinside.com 2019 - 2024. All rights reserved.