龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

Ajax、Struts、Spring的无缝结合

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
去年初,正好负责一个医药信息系统的设计开发,架构设计时,采用Struts+JDBC(自定义采用适配器模式封装了HashMap动态VO实现的持久层)。后来ajax热潮兴起,正好系统中有很多地方需要

去年初,正好负责一个医药信息系统的设计开发,架构设计时,采用Struts+JDBC(自定义采用适配器模式封装了HashMap动态VO实现的持久层)。后来ajax热潮兴起,正好系统中有很多地方需要和服务器端交互数据,如采购销售系统中的订单头/订单明细等主从表结构的维护。

数据交互过程,我们考虑采用xml来组织数据结构,更新/保存:前台封装需要的xml,通过ajax提交---〉action解析xml ---〉改造原有的持久层实现xml持久化;

查询时:持久层根据实际需要返回xml,document对象,---〉action 处理 --〉前台自己封装js库来解析xml,并刷新部分页面。

ajax:已经有很多方法实现跨浏览器的方式,这里只介绍最简单的方式,同步模式下提交xmlStr给action(*.do)。

/**
* 将数据同步传递给后台请求url
*  @return 返回xmlhttp 响应的信息
*  @param-url = '/web/module/xxx.do?p1=YY&p2=RR';
*  @param-xmlStr:xml格式的字符串
* @author zhipingch
* @date 2005-03-17
*/
function sendData(urlStr, xmlStr) {
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.open("POST", urlStr, false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    if (xmlStr) {
        xmlhttp.send(xmlStr);
    } else {
        xmlhttp.send();
    }
    return xmlhttp.responseXml;
}

struts中我们扩展了Action,实现了xmlStr转化成document对象(dom4j),并且完善了转发方式。如:

1.DispatchAction

以一个Controller响应一组动作绝对是Controller界的真理,Struts的DispatchAction同样可以做到这点。

parameter="method" validate="false">
    

精彩图集

赞助商链接