【问题标题】:What's the difference between Struts tag <s:submit> and Struts jQuery tag <sj:submit>?Struts 标签 <s:submit> 和 Struts jQuery 标签 <sj:submit> 有什么区别?
【发布时间】:2013-07-03 08:33:01
【问题描述】:

Struts 标签&lt;s:submit&gt; 和Struts jQuery 标签&lt;sj:submit&gt; 都以相同的方式提交。我的意思是,他们刷新页面并转发到另一个页面。但我认为 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>

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

【问题讨论】:

    标签: jsp struts2 struts2-jquery


    【解决方案1】:

    您可能忘记在&lt;head&gt; 的正文中包含&lt;sj:head/&gt; 标签。此标记将 JQuery stylesheet 链接到页面和其他初始内容,没有它就不会进行 Ajax 调用。查看正确提交SubmitTag的示例。

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

    【讨论】:

      【解决方案2】:

      只需在表单标签中添加id属性,在&lt;sj:submit&gt;标签中添加targets属性即可。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 如果您不想显示结果,实际上不需要带有id=result 的元素。 :)
        猜你喜欢
        • 1970-01-01
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-04
        • 2012-01-29
        • 1970-01-01
        • 2011-05-22
        相关资源
        最近更新 更多