ECS 的简单介绍

本节摘要:本节主要是简单的介绍ECS在HTML中的应用

preparation

引入:

Jakarta Element Construction Set(ECS)是一个使用 Java 语言和面向对象方法创建标记语言文档的开放源代码项目
ECS 是一组类,它们可用于生成以 HTML、XML、VioceXML 和其他标记语言编写的文档。目前,ECS 支持 HTML 和 XML,
但是它可以扩展为支持其他不同的标记语言。有了 ECS,就可以创建一个使用面向对象方法生成这种文档的应用程序,
这简化了应用程序的开发和维护。ECS提供了用 Java 对象生成标记语言的更易管理的技术。

下载插件:

开发环境:

System:xp    JDK:1.4  Tomcat:5.X  Myeclipse:6.5

ecs-1.4.2.jarimage

项目环境:

 image

修改或新建的文件说明:1.TestEcs.java  ECS的处理类       2.ECS效果显示的页面

web.xml文件不用做任何更改

start

导入ecs的jar包

TestEcs.java

 

ecs
  1 package com.bean;
2
3 import java.io.File;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.OutputStream;
7 import org.apache.ecs.html.BR;
8 import org.apache.ecs.html.Body;
9 import org.apache.ecs.html.Button;
10 import org.apache.ecs.html.Font;
11 import org.apache.ecs.html.H1;
12 import org.apache.ecs.html.HR;
13 import org.apache.ecs.html.Head;
14 import org.apache.ecs.html.Html;
15 import org.apache.ecs.html.I;
16 import org.apache.ecs.html.IMG;
17 import org.apache.ecs.html.Input;
18 import org.apache.ecs.html.LI;
19 import org.apache.ecs.html.Label;
20 import org.apache.ecs.html.Link;
21 import org.apache.ecs.html.OL;
22 import org.apache.ecs.html.Option;
23 import org.apache.ecs.html.Select;
24 import org.apache.ecs.html.Strong;
25 import org.apache.ecs.html.TD;
26 import org.apache.ecs.html.TR;
27 import org.apache.ecs.html.Table;
28 import org.apache.ecs.html.TextArea;
29 import org.apache.ecs.html.Title;
30 import org.apache.ecs.html.U;
31 import org.apache.ecs.html.UL;
32
33 /**
34 * @description ecs.jar包的使用
35 * @author ptp
36 * @date 2012-01-07
37 */
38 public class TestEcs {
39 /**
40 * Jakarta Element Construction Set(ECS)是一个使用 Java 语言和面向对象方法创建标记语言文档的开放源代码项目
41 * ECS 是一组类,它们可用于生成以 HTML、XML、VioceXML 和其他标记语言编写的文档。目前,ECS 支持 HTML 和 XML,
42 * 但是它可以扩展为支持其他不同的标记语言。有了 ECS,就可以创建一个使用面向对象方法生成这种文档的应用程序,
43 * 这简化了应用程序的开发和维护。ECS提供了用 Java 对象生成标记语言的更易管理的技术。
44 * @throws IOException
45 */
46 public String ecs1() throws IOException {
47 // 本程序未用到以下几个类,只是提出来做个介绍
48 // >>>>>>>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>>>>>>>>>
49 Html html = new Html();
50 Head head = new Head();
51 // title
52 Title title = new Title("ECS-title");
53 head.addElement(title);
54
55 Body body = new Body();
56
57 // H1,H2,...H6
58 H1 h1 = new H1("ECS-标题");
59 body.addElement(h1);
60
61 // 横线
62 HR hr = new HR();
63 body.addElement(hr);
64
65 html.addElement(head);
66 html.addElement(body);
67
68 // 普通输入框
69 Input input = new Input();
70 body.addElement(input);
71 input = new Input();
72
73 // 普通按钮
74 input.addAttribute("type", "button");
75 input.addAttribute("value", "确定");
76 input.addAttribute("name", "login");
77 body.addElement(input);
78
79 // 以下代码也可以创建一个button
80 // Button button = new Button();
81 // button.addElement("按钮");
82 // body.addElement(button);
83
84 // 换行
85 BR br = new BR();
86 body.addElement(br);
87
88 // 文本区
89 TextArea tArea = new TextArea();
90 body.addElement(tArea);
91 body.addElement(br);
92
93 // 标签 字体 加粗 斜体 下划线
94 Font font = new Font();
95 I i=new I();//斜体 用法和Stong一样
96 U u=new U();//下划线 用法和Stong一样
97 font.addAttribute("size", "5");
98 font.addAttribute("color", "red");
99 Strong strong = new Strong();
100 Label label = new Label();
101 label.addElement("学历:");
102 strong.addElement(label);
103 font.addElement(strong);
104 body.addElement(font);
105
106 // 下拉列表框
107 Select select = new Select();
108 Option option = new Option();
109 option.addElement("专科");
110 option.addAttribute("value", "1");
111 select.addElement(option);
112
113 option = new Option();
114 option.addElement("本科");
115 option.addAttribute("value", "2");
116 select.addElement(option);
117
118 option = new Option();
119 option.addElement("硕士");
120 option.addAttribute("value", "3");
121 select.addElement(option);
122
123 option = new Option();
124 option.addElement("博士");
125 option.addAttribute("value", "4");
126 select.addElement(option);
127
128 body.addElement(select);
129
130 // 图片
131 IMG img = new IMG();
132 img.addAttribute("src",
133 "D:\\workspace\\JFreeChart\\WebRoot\\highcharts\\sun.png");//注意图片的路径,注意相对路径和绝对路径的区别
134 body.addElement(img);
135
136 //列表1 每项前面是圆点
137 UL ul = new UL();
138
139 LI li=new LI();
140 li.addElement("第一个");
141 ul.addElement(li);
142
143 li=new LI();
144 li.addElement("第二个");
145 ul.addElement(li);
146
147 li=new LI();
148 ul.addElement(li);
149 li.addElement("第三个");
150
151 body.addElement(ul);
152
153
154 //列表2 每项前面是数字
155 OL ol = new OL();
156
157 LI li1=new LI();
158 li1.addElement("第一个");
159 ol.addElement(li1);
160
161 li1=new LI();
162 li1.addElement("第二个");
163 ol.addElement(li1);
164
165 li1=new LI();
166 li1.addElement("第三个");
167 ol.addElement(li1);
168
169 body.addElement(ol);
170
171 String testECS=html.toString();
172 System.out.println(testECS);
173
174 //下面把以上代码通过I/O输出到一个html文件中,方便查看运行效果
175 // 1.使用File类找到一个文件
176 File file = new File("d:" + File.separator + "testEcs.html");
177
178 // 2.通过子类实例化父类对象
179 OutputStream out = null;// 准备好一个输出的对象
180 out = new FileOutputStream(file);// 通过对象多态性,进行实例化
181
182 // 3.进行写操作
183 String str = testECS;// 准备一个字符串
184 byte b[] = str.getBytes();
185 for (int k = 0; k < b.length; k++) {
186 out.write(b[k]);
187 }
188 out.flush();//把管道的数据输出
189
190 // 4.关闭输入流
191 out.close();
192 // <<<<<<<<<<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<<<<<<<
193
194
195
196 // >>>>>>>>>>>>>>>第一个Table<<<<<<<<<<<<<<<<<<
197 Table htmlTable = new Table();
198 TR htmlTr = new TR();
199 TD htmlTd = new TD();
200 htmlTd.addElement("ECS");
201 htmlTd.setAlign("left");
202 htmlTd.setHeight(25);
203 htmlTr.addElement(htmlTd);
204 htmlTable.addElement(htmlTr);
205
206 // >>>>>>>>>>>>>>>第二个Table<<<<<<<<<<<<<<<<<<
207 Table htmlTable2 = new Table();
208 htmlTable2.setBorder(5);
209
210 // ---------------第一行---------------------
211 htmlTr = new TR();
212 htmlTd = new TD();
213 htmlTd.addElement("姓名:");
214 htmlTd.setWidth("16%");
215 htmlTd.setAlign("right");
216 htmlTd.setNoWrap(true);
217 htmlTr.addElement(htmlTd);
218
219 htmlTd = new TD();
220 htmlTd.addElement("李四");
221 htmlTr.addElement(htmlTd);
222
223 htmlTd = new TD();
224 htmlTd.addElement("性别:");
225 htmlTd.setWidth("16%");
226 htmlTd.setAlign("right");
227 htmlTr.addElement(htmlTd);
228
229 htmlTd = new TD();
230 htmlTd.addElement("男");
231 htmlTd.setWidth("34%");
232 htmlTd.setAlign("left");
233 htmlTr.addElement(htmlTd);
234
235 htmlTable2.addElement(htmlTr);
236
237 // ---------------第二行---------------------
238 htmlTr = new TR();
239 htmlTd = new TD();
240 htmlTd.addElement("年龄:");
241 htmlTd.setWidth("16%");
242 htmlTd.setAlign("right");
243 htmlTr.addElement(htmlTd);
244
245 htmlTd = new TD();
246 htmlTd.addElement("24");
247 htmlTd.setWidth("34%");
248 htmlTd.setAlign("left");
249 htmlTr.addElement(htmlTd);
250
251 htmlTd = new TD();
252 htmlTd.addElement("籍贯:");
253 htmlTd.setWidth("16%");
254 htmlTd.setAlign("right");
255 htmlTr.addElement(htmlTd);
256
257 htmlTd = new TD();
258 htmlTd.addElement("湖北省");
259 htmlTd.setWidth("34%");
260 htmlTd.setAlign("left");
261 htmlTr.addElement(htmlTd);
262
263 htmlTable2.addElement(htmlTr);
264
265 // ---------------第三行--------------------
266 htmlTr = new TR();
267 htmlTd = new TD();
268 htmlTd.addElement("学历:");
269 htmlTd.setWidth("16%");
270 htmlTd.setAlign("right");
271 htmlTr.addElement(htmlTd);
272
273 htmlTd = new TD();
274 htmlTd.addElement("本科");
275 htmlTd.addElement("&nbsp;");
276 htmlTd.setWidth("34%");
277 htmlTd.setAlign("left");
278 // htmlTd.setBgColor("");
279 htmlTr.addElement(htmlTd);
280
281 htmlTd = new TD();
282 htmlTd.addElement("手机:");
283 htmlTd.setWidth("16%");
284 htmlTd.setAlign("right");
285 htmlTr.addElement(htmlTd);
286
287 htmlTd = new TD();
288 htmlTd.addElement("13916349897");
289 htmlTd.addElement("&nbsp;");
290 htmlTd.setWidth("34%");
291 htmlTd.setAlign("left");
292 htmlTr.addElement(htmlTd);
293 htmlTable2.addElement(htmlTr);
294
295 // ---------------第四行---------------------
296 htmlTr = new TR();
297 htmlTd = new TD();
298 htmlTd.addElement("住址:");
299 htmlTd.setWidth("16%");
300 htmlTd.setAlign("right");
301 htmlTr.addElement(htmlTd);
302
303 htmlTd = new TD();
304 htmlTd.addElement("湖北省襄阳市谷城县庙滩镇");
305 htmlTd.addElement("&nbsp;");
306 htmlTd.setWidth("34%");
307 htmlTd.setAlign("left");
308 htmlTr.addElement(htmlTd);
309 htmlTable2.addElement(htmlTr);
310
311 String result = htmlTable.toString() + htmlTable2.toString();
312 System.out.println(result);
313
314 return result;
315 }
316
317 /**
318 * @param args
319 * 测试的main方法
320 * @throws IOException
321 */
322 public static void main(String[] args) throws IOException {
323 TestEcs ecs = new TestEcs();
324 ecs.ecs1();
325
326 }
327
328 }

 

index.jsp

 

index
 1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
2
3 <%
4 String path = request.getContextPath();
5 String basePath = request.getScheme() + "://"
6 + request.getServerName() + ":" + request.getServerPort()
7 + path + "/";
8 %>
9
10 <!--方式2:引入bean-->
11 <!--
12 创建一个Bean实例并指定它的名字和作用范围
13 id 命名引用该Bean的变量。如果能够找到id和scope相同的Bean实例,
14 jsp:useBean动作将使用已有的Bean实例而不是创建新的实例
15 class 指定Bean的完整包名
16 scope 指定Bean在哪种上下文内可用,可以取下面的四个值之一:page,request,session和application。
17 默认值是page,表示该Bean只在当前页面内可用(保存在当前页面的PageContext内)。
18 type 指定引用该对象的变量的类型,它必须是Bean类的名字、超类名字、该类所实现的接口名字之一
19 beanName 指定Bean的名字。如果提供了type属性和beanName属性,允许省略class属性
20 -->
21 <jsp:useBean id="ecs" scope="page" class="com.bean.TestEcs"></jsp:useBean>
22 <!--
23 设置Bean中的属性值.
24 name属性是必需的。它表示要设置属性的是哪个Bean
25 property属性是必需的。它表示要设置哪个属性。有一个特殊用法:
26 如果property的值是“*”,表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法
27 value属性是可选的。该属性用来指定Bean属性的值。
28 字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、byte、Byte、char、Character
29 param是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,
30 系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值
31 value和param不能同时使用,但可以使用其中任意一个
32 -->
33 <jsp:setProperty name="ecs" property="*"/>
34 <%
35 String result=ecs.ecs1();
36 %>
37
38 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
39 <html>
40 <head>
41 <base href="<%=basePath%>">
42
43 <title>ecs的使用</title>
44 <meta http-equiv="pragma" content="no-cache">
45 <meta http-equiv="cache-control" content="no-cache">
46 <meta http-equiv="expires" content="0">
47 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
48 <meta http-equiv="description" content="This is my page">
49 <!--
50 <link rel="stylesheet" type="text/css" href="styles.css">
51 -->
52 </head>
53
54 <body>
55 <%=result%>
56 <br>
57 </body>
58 </html>

 

result

访问的url为:http://localhost:8080/TestEcs/index.jsp

效果截图1---生成的html文件 testEcs.html

image

效果截图2---访问的页面index.jsp

image

 

补充几点:

1.index.jsp页面引入TestEcs类还有以下的方式:

<!-- 方式1:通过import导入类,然后new一个对象,调用需要的方法 -->
<%@page import="com.bean.TestEcs"%>
<%
    TestEcs ecs=new TestEcs();
    String result = ecs.ecs1();
%>

2.使用ecs生成单选框、复选框、链接等暂时还没有列出,以后根据实际情况补充

望各位大侠不吝赐教……

转载于:https://www.cnblogs.com/java-pan/archive/2012/01/08/ecs.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值