user2444474
user2444474

Reputation: 573

How to use Struts2 jQuery plugin <sj:submit> button?

I have Struts 2 jQuery plugin <sj:submit> button, when I click the button it's not firing the action class, as Struts <s:submit> button is doing. I need to keep the same page after clicking a button.

Please, look into below code difference:

Struts submit button - Working good:

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

Converting Struts submit to Struts-jQuery submit submit button - Not working good:

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

If using <sj:submit/> only, the page is refreshing and working as Struts <s:submit>tag, but it should not be.

Upvotes: -1

Views: 2327

Answers (2)

Roman C
Roman C

Reputation: 1

You should include <sj:head/> tag in the body of the <head>. This tag links JQuery and stylesheet on the page and other initial things, without it Ajax call has not made and as a result page refreshes. See examples of submitting tag <sj:submit>:

<%@ 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>

Upvotes: 1

Aleksandr M
Aleksandr M

Reputation: 24406

In order <sj:submit> to work properly targets attribute must be set to some value and form must have id attribute.

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

Upvotes: 1

Related Questions