简介:
Apache Click 是一个先进的Java企业版的Web应用程序框架,提供一个基于浏览器的富客户端编程模型。非常简单和易用,一般的开发人员在一天内就可以上手使用。
基于组件设计的方法,而且进行了优化,从而更加易用。它提供了一个面向页面的设计模式、基于组件与事件的编程模型。Click包括了40多个开盒即用的组件,对应了HTML中主要的元素。这样使得编程很简单了。Click的 Forms与组件提供了自动化的验证和展现,使得FORM的开发快速且健壮。
开发环境:
jdk:1.6
IDE:MyEclipse 3.6
Tomcat:apache-tomcat-6.0.33
click包:click-2.3.0.jar
编写Click HelloWorld步骤:
1、新建web项目click-hello
2、导入包click-2.3.0.jar(核心包)。
3、配置web.xml。添加ClickServlet,代码如下
<servlet>
<servlet-name>click-servlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>click-servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
4、在web.xml同级目录下新建Click配置文件click.xml。如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<click-app charset="UTF-8">
</click-app>
这里暂时不用配置任何信息,在后面会进行配置。
5、现在开始创建页面类。创建包example.click.hello.page,在该包下创建Java类HelloWorld.代码如下:
package org.vic.click.hello;
import java.util.Date;
import org.apache.click.Page;
public class HelloWorld extends Page
{
//声明一个私有的时间变量。
private Date time = new Date();
public HelloWorld()
{
//将该时间变量添加到页面模型map里
addModel("time", time);
}
}
6、创建页面helloWorld.htm,这里我们将helloWorld.htm直接放在webRoot下。代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>click hello world</title>
</head>
<body>
<h2>
Hello World
</h2>
Hello world from Click at $time
</body>
</html>
$time 对应HelloWorld.java、addModel("time", time)中的time
7、修改click.xml文件,确保helloWorld.htm能对应到类HelloWorld.java。在<click-app></click-app>中添加代码
<click-app charset="UTF-8">
<pages package="org.vic.click.hello" />
<mode value="debug" />
</click-app>
- <mode value="debug" />声明后台日志的模式是什么,这里设置为debug级别,除此之外还有development(开发模式info)、profile(规范输出模式info)、production(生产模式warn)、trace(跟踪模式)。
- pages有属性automapping默认为true该属性将决定是否自动映射除WEB-INF下所有page到相应的类。
8、启动tomcat,在浏览器地址中输入http://localhost:8888/click-hello/helloWorld.htm 即可看到效果,如下图所示。
注意:请把8888换成自己Tomcat的端口号。
9、工程结构如下图所示:
注意:automapping 默认为true,所以他可以省略。
如果页面模板放在web 根文件夹的子文件夹内,他关联的page 类必须放在等同命名的相对于基包的子包内,以便page 可以被
自动匹配到。上面的匹配中,页面模板security/change-password.htm 放在web 根的security 文件夹内。为使Click 正确匹配页
面模板到他的page 类, 这个类必须放在基包com.mycorp.page 的子包security 中。绝对的page 类名为
com.mycorp.page.security.ChangePassword 。
如果仅在click.xml中声明包名让Click自己去定位(automapping="true")页面对应类,则需要注意页面名称跟类名之间的关系。
页面模板名称到类名的转换有:
change-password.htm => ChangePassword
change_password.htm => ChangePassword
changePassword.htm => ChangePassword
ChangePassword.htm => ChangePassword
在自动匹配中,如果page 类无法找到,Click 将添加Page 后缀个类名(如果这个类名没有Page 后缀)并试图匹配页面模板到
这个修改后的类名。例如:
customer.htm => CustomerPage
change-password.htm => ChangePasswordPage
本示例代码下载地址: