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]