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

simplesns 发布于 2011/03/21 00:10
阅读 200
收藏 1

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”,组件在声明之后,就可以在页面中调用,如本例,调用的方式是 onclick="$Actions['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 (返回一个页面)" onclick="$Actions['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

加载中
返回顶部
顶部