在SSH框架下实现jsp页面的局部刷新(ajax)

在SSH框架下实现jsp页面的局部刷新(ajax)


第一种方法:

jsp中代码为


<a onclick="loadXMLDoc('ajax/my.jsp')"></a>

对应的js:


<script type="text/javascript">
var xmlhttp;

    function loadXMLDoc(url)
    {
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("POST",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = "OK"
    document.getElementById("diff").innerHTML=xmlhttp.responseText;
    }
  else
    {
    alert("Problem retrieving data:" + xmlhttp.statusText);
    }
  }
}
</script>

my.jsp是点击a标签后,id为diff的div所要异步刷新的内容。

第二种方法:使用SSH框架所支持的Ajax方式,即dojo,DWR等框架。

jsp代码为


<sx:a href="ajaxAction?address=regression" targets="diff" executeScripts="true">

对应的ajaxaction需要在struts配置对应的action位置和result。


<action name="ajaxAction" class="com.sdu.action.ajaxAction">
<result name="regression">/ajax/Regression.jsp</result>
</action>

对应的ajaxaction则需要继承actionsupport,完成execute()方法的重写


public String execute()
{
    if(address.equals("regression"))
        return "regression";

}
方法比较:

因为dojo框架更加适合ssh框架下web的开发。sx:a,sx:div和sx:submit为最为常见的sx标签。在个人实现过程中因为有些jsp中包含了js文件,而调用第一种方法无法实现,而sx:a标签中有一个executeScripts属性,意思为是否执行返回内容中的js代码,可以顺利实现。所以个人更倾向于第二种已有的针对ssh框架的ajax实现方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值