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条答案
按热度按时间omjgkv6w1#
您可能忘记在
<head>
的主体中包含<sj:head/>
标记。这个标签将JQuerystylesheet
链接到页面和其他初始内容,没有它就不会进行Ajax调用。参见正确提交<sj:submit>
的示例。如果您通过
<sj:submit>
标记进行Ajax调用,则页面不应刷新,但targets
可以在成功的结果中更新。如果在页面的头部没有包含JQuery,我认为表单不会发出任何HTTP请求,它的行为就像你没有包含action
属性一样。b4qexyjb2#
只需在表单标签中添加
id
属性,并在<sj:submit>
标签中添加targets
属性。kokeuurv3#
如果不需要触发一个apache调用,则应该使用
<s:submit/>
。<s:submit/>
使用html机制来提交表单,但是<sj:submit />
正在进行一个apache调用,查看源代码HERE,它解释了它是如何工作的。如果你需要这个表单来进行一个aplog调用,那么就像@AleksandrM说的那样,定义属性targets = "result"
,那么你应该有像<div id="result"/>
这样的东西,它包含aplog调用的结果。