最近由于项目调整接手了个维护项目,仔细一看比较崩溃。一是由于项目维护人员很少,二是系统使用的技术比较旧,使用传统的Servlet+JSP开发,而且Sevlet代码中充斥着大段的PrintOut出来的Jsp代码,JSP代码中同样充斥着大量的JAVA代码。如果有新的需求变更,修改起来代价很大。
恰好这几天整理个人电脑时发现当时第一次参加工作时的项目源码,当时的公司采用了SpringMVC+Click+Cayenne整合了一套开发框架,当时开发的时候并没有花心思去仔细了解;现在想来当时Click是比较流行的时候,现在闲来无事,花点时间整理一下,权当是一种休闲娱乐吧!
闲话少说,下面就使用Click开发一个最简单的Web应用。
(一)准备工作
- 从Apache官网上下载click-2.3.0.zip,解压到本地磁盘;
- 使用Eclipse创建Web应用click-sample,将click-2.3.0中dist中的click-2.3.0.jar和click-extras-2.3.0.jar导入到Web-INF中的lib里;
(二)代码编写
1,新建HelloWorldPage.java,继承至org.apache.click.Page; 把message变量添加到页面模型的“message”中。Click 会确保所有添加到页面模型中的对象都在页面模版中可用。
- package com.jonny.click.sample.page;
- import org.apache.click.Page;
- public class HelloWorldPage extends Page{
- private static final long serialVersionUID = -3770478730293725405L;
- private String message = "HelloWorld";
- public HelloWorldPage() {
- addModel("message", message);
- }
- }
2, 在WebContent下新建hello-world.htm,使用$message来获取页面的message变量;
- <!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>HelloWorld</title>
- </head>
- <body>
- $message
- </body>
- </html>
3,修改WEB-INF下的web.xml文件;另外新增click.xml;
web.xml
所有Click 页面模板必须用.htm 扩展名,并且,ClickServlet 应该匹配来处理所有*.htm 的URL 请求。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="WebApp_ID" version="2.5">
- <display-name>click-sample</display-name>
- <welcome-file-list>
- <welcome-file>hello-world.htm</welcome-file>
- </welcome-file-list>
- <servlet>
- <servlet-name>ClickServlet</servlet-name>
- <servlet-class>org.apache.click.ClickServlet</servlet-class>
- <load-on-startup>0</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>ClickServlet</servlet-name>
- <url-pattern>*.htm</url-pattern>
- </servlet-mapping>
- </web-app>
click.xml
Click会智能地识别HelloWorldPage来对应到模版hello-world.htm。我们只需要配置Page类所在的包就可以了。
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <click-app charset="UTF-8">
- <pages package="com.jonny.click.sample.page"/>
- <mode value="profile"/>
- </click-app>
4,启动Web应用,访问hello-world.htm,就会看到HelloWorld几个大字了。