`
allbin1983
  • 浏览: 35763 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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”,组件在声明之后,就可以在页面中调用,如本例,调用的方式是 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

 

分享到:
评论

相关推荐

    android解析xml文件《老罗Android开发视频教程》

    SAX(Simple API for XML)是一种事件驱动的解析方法,它不需要一次性加载整个XML文件,而是逐行读取,遇到元素、属性等时触发相应的事件处理器。这种方式节省内存,适合处理大文件。Android中的SAX解析可以借助`org...

    python编程经典示例代码

    #### 一、章节概览与重要知识点解析 ##### 1. Chapter3.1: Class Average Program with Counter-Controlled Repetition 在本章中,我们将探讨如何通过循环来计算班级学生的平均成绩,并且利用计数器控制循环的结束...

    RSS阅读器开发实战

    RSS阅读器开发实战是一个以Java语言为开发工具的项目,主要目标是实现一个能够解析、显示和管理RSS订阅源的应用程序。在这个项目中,开发者将深入理解RSS feed的结构和工作原理,同时掌握Java编程以及相关框架的使用...

    基于vue3 、web worker的翻牌计时器源码.zip

    Vue3 和 Web Worker 技术在现代Web开发中扮演着重要的角色,特别是在构建高性能、响应式的用户界面方面。本项目“基于vue3 、web worker的翻牌计时器...同时,这也是一个实践组件化编程和响应式数据绑定的实战案例。

    ASP.NET 2.0 XML高级编程

    《ASP.NET 2.0 XML高级编程》是Wrox出版社发布的一本专业指南,专注于探讨在ASP.NET 2.0框架下如何深度利用XML技术。这本书面向已经掌握基础的ASP.NET开发者,旨在提升他们在XML处理方面的技能。XML(eXtensible ...

    实战XML(第二版)

    XML,全称可扩展标记语言(Extensible ...通过《实战XML(第二版)》的学习,读者能够掌握XML的基本概念、解析方法、验证技术以及在各种编程环境中的应用,从而在实际项目中灵活运用XML这一强大的数据表示和交换工具。

    Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例

    在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...

    疯狂XML讲义 源码8(2)

    2. 解析器:XML解析器是处理XML文档的关键组件。有两种类型的解析器:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器将整个XML文档加载到内存中,形成一个树形结构,方便访问任何部分;而SAX...

    Windows Mobile 实战——RSS阅读器

    首先,我们需要理解RSS(Really Simple Syndication)是什么。RSS是一种XML格式,用于发布和订阅网站内容,如新闻、博客文章或播客。RSS阅读器允许用户在一个地方聚合和管理来自多个来源的这些内容,使得信息获取...

    simple-todos-react:逐步遵循React教程的存储库

    1. **React基础**:项目基于React框架,涉及组件化编程、状态管理和生命周期方法等React核心概念。React通过JSX语法糖来融合HTML和JavaScript,使得编写UI组件更为直观。 2. **状态管理**:简单的待办事项应用通常...

    cup-of-kana:Simple React应用程序可查看日语平假名和片假名

    JSX提供了一种声明式的编程方式,使得编写模板更加简洁和易于理解。 五、日语字符展示与处理 在处理日语字符时,开发者需要确保正确设置编码(通常是UTF-8),并在HTML文件中添加`&lt;meta charset="UTF-8"&gt;`来指定...

    delphi xml 权威指南

    接着,将详细讲解Delphi中处理XML的主要组件,如TXMLDocument、TXMLEncoder和TXMLDecoder等,以及如何使用它们进行XML的读写、解析和编码。 在Delphi中,DOM(Document Object Model)和SAX(Simple API for XML)...

    flex as资料

    Flex提供了丰富的组件库和MXML语言,使得开发者能够轻松创建交互式、动态的网络应用。而Cairngorm,作为一个轻量级的MVC框架,是Flex应用中常用的设计模式,它极大地提高了代码的可维护性和可扩展性。 Cairngorm...

    simple-banker:基于angular.js的简单银行应用程序

    通过"simple-banker"项目,我们可以深入了解Angular.js的实战应用,并学习如何构建一个功能完整的银行系统。无论你是Angular.js初学者还是经验丰富的开发者,这个项目都能为你提供宝贵的实践经验和学习材料。同时,...

    simple-jdbctemplate-1.5.3.zip_Java编程_Java_

    《Spring中的SimpleJdbcTemplate:深度解析与应用》 在Java编程领域,Spring框架以其强大的功能和易用性深受开发者喜爱。在Spring的众多模块中,`SimpleJdbcTemplate`是数据库操作的一个重要工具,它简化了JDBC...

    java MVC项目是实战

    例如,你可能需要使用HTTP相关的jar库如`httpclient`来处理网络请求,或者使用JSON解析库如`json-simple`进行数据交换。 6. **urlwrite**:这可能是URL重写技术的提及,用于改善Web应用中URL的可读性和美观性。你...

    实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著.zip

    《实战Delphi6.Kylix2.SOAP.Web Service程序设计篇》是由知名技术专家李维编著的一本专业书籍,主要面向的是希望深入理解和应用Delphi6、Kylix2、SOAP以及Web Service技术的开发者。这本书详细介绍了如何利用这些...

Global site tag (gtag.js) - Google Analytics