views:

298

answers:

2

Hi I'm using struts 2. I'm trying to reload a target div from a javascript by using jquery to target the div and a struts action that loads the content.

Does anyone know how to do this? The problem is how I use (javascript) jquery to do this.

BR, Tobias

+1  A: 

The simplest thing to do is use the jQuery .load() function.

$('#targetDivId').load('${your.struts.url}', function() {
  // stuff to do when the div has been reloaded
});

Now understand that you should make sure that the response from your action is a page that's not really a complete HTML page, because you can't stuff a complete HTML document inside a <div>. If you have a complete document, and you only want a portion of it (say, a block contained within a <div> with id "usefullStuff"), you can do this:

$('#targetDivId').load('${your.struts.url} #usefullStuff', function() {
  // code
});
Pointy
Thank you. You saved my Monday :)
LimetreeValley
A: 

Or with Struts2 jQuery Plugin:

<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 
  <head> 
    <sj:head/> 
  </head> 
  <body> 
    <div id="div1">Div 1</div> 
    <s:url id="ajaxTest" value="/AjaxTest.action"/> 

    <sj:a id="link1" href="%{ajaxTest}" targets="div1"> 
      Update Content 
    </sj:a> 
  </body> 
</html>
jogep