ajax、Struts、spring的无缝结合

文章作者 100test 发表时间 2007:03:14 16:37:16
来源 100Test.Com百考试题网


zhipingch 原创

去年初,正好负责一个医药信息系统的设计开发,架构设计时,采用Struts JDBC(自定义采用适配器模式封装了HashMap动态VO实现的持久层)。后来ajax热潮兴起,正好系统中有很多地方需要和服务器端交互数据,如采购销售系统中的订单头/订单明细等主从表结构的维护。
[color=blue]数据交互过程[/color],我们考虑采用xml来组织数据结构,更新/保存:前台封装需要的xml,通过ajax提交---〉action解析xml ---〉改造原有的持久层实现xml持久化;
查询时:持久层根据实际需要返回xml,document对象,---〉action 处理 --〉前台自己封装js库来解析xml,并刷新部分页面。

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

  1. /**
  2. * 将数据同步传递给后台请求url
  3. * @return 返回xmlhttp 响应的信息
  4. * @param-url = /web/module/xxx.do?p1=YY&.p2=RR.
  5. * @param-xmlStr:xml格式的字符串
  6. * @author zhipingch
  7. * @date 2005-03-17
  8. */
  9. function sendData(urlStr, xmlStr) {
  10. var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP").
  11. xmlhttp.open("POST", urlStr, false).
  12. xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded").
  13. if (xmlStr) {
  14. xmlhttp.send(xmlStr).
  15. } else {
  16. xmlhttp.send().
  17. }
  18. return xmlhttp.responseXml.
  19. } 来源:www.examda.com



struts中我们扩展了Action,实现了xmlStr转化成document对象(dom4j),并且完善了转发方式。如
[quote]
1.DispatchAction
以一个Controller响应一组动作绝对是Controller界的真理,Struts的DispatchAction同样可以做到这点。



相关文章


用Java实现Web服务器HTTP协议
JavaScript验证整个表单
ajax、Struts、spring的无缝结合
JAVA链接DB2数据库的例子
java设置-JDK环境变量的设置
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛