在以往使用jquery的过程中,如果需要动态加载某个信息,一般的处理方法都是通过action去查询信息,然后通过json返回给jsp页面,在页面中使用javascript拼凑出指定的样式,例如表格。这个拼凑的过程是很烦人的,而且特别容易出错,调试也很麻烦。
之所以这么麻烦,完全是因为对jquery不够熟悉,后来了解到jquery有个load方法,可以动态加载某个action的执行结果到指定的html元素,例如div。因此,我就想可以将之前的程序进行改写,在获取信息时,仍然采用传统的方法,即通过struts2的action去获取信息,然后跳转到某个页面显示信息,我们可以在这个页面里面设置样式,其实这个页面就是普通的jsp页面,在里面通过struts2的标签显示数据。然后我们将之前的ajax方法改为load。
示例如下:
如果之前显示动态信息的div 的id为detailInfo
<div id="detailInfo">
</div>
我们现在可以如下写ajax方法:
$("#detailInfo").load("<%=request.getContextPath()%>/namespace/action.action?id=${id}");
这样处理之后,jquery会将action的执行结果显示在detailInfo的div之中。这样既达到了动态获取信息的目标,同时又保持代码的简介,并且可以很轻松的定义样式。