allbin1983 发表于 2013-1-18 00:33:37

simple 组件声明式编程实战解析

simple 在架构之初就考虑到降低Web应用开发的复杂度,提高开发效率。降低开发复杂度的做法是提供了大量的组件。我们把组件分为 核心组件,基本组件库,业务组件。 核心组件包括 AJAX请求组件(ajaxRequest),验证组件(Validation),提交组件(Submit)。核心组件是基本组件与业务组件的基础。
组件在开发过程中,都是按照声明式的编程,simple 框架可以理解你声明的动作。举个例子,比如在 xml  描述需要使用的组件,simple 就会按照在xml中的声明,就可以完成需要做的工作。
 
下面就给大家介绍下声明式编程的具体例子。
 
例子(一) 声明  ajax 组件调用一个jsp 页面。
 
如果你下载了simple,在 root\developer\comps\ajaxRequest 目录下 有三个文件,demo.jsp,demo.xml,page1.jsp.
 
demo.xml 是对 demo.jsp 的声明。
 
demo.xml 代码如下:
 
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd">
  <components>
    <ajaxRequest name="ajaxDemo1" updateContainerId="ajaxDemo1">
      <urlForward>page1.jsp</urlForward>
    </ajaxRequest>
  </components>
</page>
 
上面的demo.xml 就是simple 组件声明式编程.  下面是simple 定义的组件规范。
 
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd">
  <components>
  </components>
</page>
 
本例就是调用ajax 组件,ajax 的组件名字是“ajaxDemo1”,组件在声明之后,就可以在页面中调用,如本例,调用的方式是 。
updateContainerId 是ajax 调用page1.jsp返回更新页面的ID. 本例中,对应与  <div id="ajaxDemo1"></div>。
 
demo.jsp  内容如下:
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<div style="padding: 10px;">
<table width="100%" border="0">
    <tr>
        <td><input type="button" value="Ajax (返回一个页面)" color: #ff0000;">ajaxDemo1']();" />
        <div id="ajaxDemo1"></div>
        </td>
    </tr>
 </table>
</div>
 
page1.jsp  的代码如下:
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<div style="padding: 4px; border: 3px solid #ddd;background: #f4f9f4;">
这是一个被调用的jsp页面
</div>
 
上面的代码,可以直接体验运行效果,点击-Ajax (返回一个页面)-查看.
 
例子(二),我的页面声明。 参考simple工程对于的代码:root\my\home.xml,root\my\home.jsp。
 
这个例子是真实的演示环境代码,下面分别对每一个行代码进行说明。
 
home.xml   的声明如下:
 
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd">
    <scriptEval>first</scriptEval>  详细说明
    <scriptInit>
    import net.simpleframework.my.home.MyHomeUtils;
    </scriptInit> 详细说明
    <importPage>
        <value>/template/t.xml</value>
        <value>${MyHomeUtils.deployPath}jsp/home_c.xml</value>
    </importPage>
    <jobView>${net.simpleframework.organization.IJob.sj_account_normal}</jobView>
</page>
 
 
home.jsp 内容如下:
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="net.simpleframework.my.home.MyHomeUtils"%>
<%
    final String center = MyHomeUtils.deployPath + "jsp/home_c.jsp";
%>
<jsp:include page="/template/center.jsp" flush="true">
    <jsp:param value="<%=center%>" name="center" />
</jsp:include>
 
 
运行体验: http://demo.simpleframework.net/system/login.jsp
 
 
如果有不明白的地方请留言,大家可以进行讨论。
 
当然,其它组件的调用方式,完全类似。
 
原文:http://simpleframework.net/blog/v/16211.html
 
页: [1]
查看完整版本: simple 组件声明式编程实战解析