基于组件的机制的客户端-SimpleFramework

开发 后端
本篇文章介绍的是基于组件的机制的客户端,就是开发人员调用接口,希望大家参考。

如何使用组件:

描述文件的位置

XML描述文件的位置由请求参数__xmlpath决定,比如:

 

  1. http://simpleframework.net/t.do?__xmlpath=/demo/t.xml&p1=data1&p2=data2 

如果访问的是JSP文件,则__xmlpath可以不定义,此时, XML描述文件的位置被默认为和JSP文件同路径并且同文件名的XML文件。

在Eclipse等IDE下,可以通过引入本地XMLSchema来加快开发及合法性验证:

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.   xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd"> 
  4.     ...  
  5. </page> 

 

 

组件的定义

SimpleFramework的所有组件都是在XML描述文件中的components标签下定义的, 这有别于标签库 (TagLibs),能更好的把展示(HTML/JSP)和定义(XML)进行有效的分离。比如,定义一个树组件:

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.   xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd"> 
  4.     <components> 
  5.         <tree name="doc2Tree" containerId="doc2Tree"> 
  6.         </tree> 
  7.         ...  
  8.     </components> 
  9. </page>    

 

 

 

组件和页面文档元素的绑定

组件和页面文档元素的绑定是通过CSS Selector实现的,有了这种绑定关系, 一般来讲,组件会对页面DOM元素进行如下可能性的增强:

为绑定的元素添加属性和事件

为绑定的元素添加子元素

移动绑定的元素到适合的位置

添加脚本支持

这种增强性的操作都是由SimpleFramework自动完成的,客户端只需要根据组件的差异来定义不同的绑定关系,如上述的树组件,containerId属性定义了基于ID的选择器,这样,组件生成的代码为绑定的元素添加需要子元素(树)。

通过Javascript调用组件

组件的调用是通过一个内置的Javascript对象$Actions来完成的,更多关于$Actions的介绍请参考$Actions是什么。

$Actions是什么

$Actions是一个Javascript对象

$Actions是一个Javascript对象,是window的一个子对象,可以通过window.$Actions或则直接$Actions访问。

$Actions的目标及组件对象

$Actions的目标是客户端(浏览器)能通过Javascript来调用组件对象。绝大多数组件都会在$Actions里生成一个操作自己行为的组件对象,该组件对象可以通过$Actions["name"]访问, name是组件的名称,在组件描述文件中必须定义该名称。

组件对象定义了自己的属性及方法,可以通过Javascript来调用这些属性及方法。比如刷新树组件:

 

  1. $Actions["treeName"].refresh(); 

$Actions["name"]()是组件的缺省函数,在大部分情况下,缺省函数体现了这个组件的主要特性,比如,$Actions["ajaxRequest"]()即发出一个AJAX请求; $Actions["treeName"]()即构造了整棵树。

$Actions.callSafely函数

$Actions定义了callSafely函数来安全的访问组件对象。因为在页面装载的时候,组件对象可能还没生成,就有脚本开始调用该组件对象,通过callSafely函数可以确保组件对象已经存在再开始调用。

 

责任编辑:金贺 来源: SimpleFramework.net
相关推荐

2011-04-22 10:13:35

SimpleFrame

2011-04-22 10:01:59

SimpleFrame

2011-04-22 09:48:51

SimpleFrame

2011-08-15 14:09:59

JavaHBase

2009-06-12 19:18:08

REST客户端框架JavaScript

2009-03-04 10:27:50

客户端组件桌面虚拟化Xendesktop

2009-03-18 14:44:34

LinuxqTwitterTwitter

2021-09-22 15:46:29

虚拟桌面瘦客户端胖客户端

2011-04-06 14:24:20

Nagios监控Linux

2011-03-21 14:53:36

Nagios监控Linux

2009-06-23 14:00:49

JavaFX开发

2024-01-17 19:05:44

mget优化数据库

2016-11-29 13:03:46

微信客户端跨平台组件

2011-03-25 12:50:29

nagios安装

2010-07-22 12:24:31

Telnet客户端

2010-05-26 09:26:43

Cassandra

2012-02-27 09:30:24

JavaMindTerm

2010-07-19 16:30:19

Telnet客户端

2011-03-29 16:07:32

CACTISNMP

2012-08-20 09:57:11

JavaiQQ开源QQ
点赞
收藏

51CTO技术栈公众号