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标签不起作用吗?
答案 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调用的结果。