论坛首页 Java企业应用论坛

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

浏览 1493 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-21  

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

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics