struts 2 jquery内部html

时间:2014-10-06 09:53:13

标签: jquery struts2

我在struts 2 webapp中有一个表单。我有jquery插件插件很好地工作。但是在我的一些页面上,我正在根据用户交互重新加载div,并使用以下javascript来提交操作并在页面上重新加载div:

function doWhatever()
{    

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("mydiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","MyAction.action?id="+1);
xmlhttp.send();    
}

这一切都运行正常,除非我用动作的结果重新加载div,没有一个jquery标签在div中的新页面上正确呈现。常规struts s:标签在div中的新页面上正确呈现在新的内部页面上,我包含了与主页面相同的标签:

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sjq" uri="/struts-jquery-tags"%>

 <html>
<head>
<sj:head />
</head>

对此有任何帮助将不胜感激。

Struts 2版本2.3.16.3 struts 2 jquery插件版本:3.7.1

Spunog

1 个答案:

答案 0 :(得分:0)

问题是Struts2-jquery-plugin生成在document.ready()处理程序上运行的脚本。

它们在页面加载时工作正常,但是在通过AJAX调用返回的JSP片段的情况下不会触发它们。

这是问题的working and tested solution

有关Struts2和AJAX的一般主题,您可能也想阅读this answer