【问题标题】:Struts2 jQuery plugin - submit buttonStruts2 jQuery 插件 - 提交按钮
【发布时间】:2013-06-30 12:24:26
【问题描述】:

我有 Struts 2 jQuery 插件提交按钮,当单击该按钮时,它不会触发动作类作为 Struts 提交按钮。单击按钮后我需要保持相同的页面。请查看下面的代码差异。

Struts 提交按钮 - 运行良好:

<s:form action="product!list" id="searchForm" theme="simple" method="Post">
     <s:submit action="product" method="list" value="Find" />
</s:form>

将 Struts 提交转换为 Struts-jQuery 提交按钮 - 效果不佳:

<s:form action="product!list" id="searchForm" theme="simple" method="Post" >     
     <sj:submit />
</s:form>

如果只使用表单动作 &lt;sj:submit/&gt; ,页面会刷新并作为 Struts 标签工作,但不应该这样。

【问题讨论】:

  • 定义“不好用”。你的 JS 控制台里有什么? DEBUG 级别的 devMode=true 服务器日志中有什么内容?如果您只使用表单的操作而不是设置 href 怎么办?
  • 页面正在引用,但它不应该发生,因为它支持 ajax。我需要提交页面而不刷新页面。

标签: java jquery jsp struts2 struts2-jquery


【解决方案1】:

您应该在&lt;head&gt; 的正文中包含&lt;sj:head/&gt; 标记。这个标签链接页面上的 JQuery 和 stylesheet 和其他初始内容,没有它,Ajax 调用不会进行,因此页面会刷新。查看提交标签SubmitTag的示例:

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>
    <s:form id="form" action="AjaxTest">
      <input type="textbox" name="data">
      <sj:submit value="Submit Form" />
    </s:form>
  </body>
</html>

【讨论】:

    【解决方案2】:

    为了使&lt;sj:submit&gt; 正常工作,必须将targets 属性设置为某个值,并且表单必须具有id 属性。

    <s:form action="product!list" id="searchForm">     
      <sj:submit targets="results"/>
    </s:form>
    

    【讨论】:

      猜你喜欢
      • 2014-03-03
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多