最近由于项目调整接手了个维护项目,仔细一看比较崩溃。一是由于项目维护人员很少,二是系统使用的技术比较旧,使用传统的Servlet+JSP开发,而且Sevlet代码中充斥着大段的PrintOut出来的Jsp代码,JSP代码中同样充斥着大量的JAVA代码。如果有新的需求变更,修改起来代价很大。

       恰好这几天整理个人电脑时发现当时第一次参加工作时的项目源码,当时的公司采用了SpringMVC+Click+Cayenne整合了一套开发框架,当时开发的时候并没有花心思去仔细了解;现在想来当时Click是比较流行的时候,现在闲来无事,花点时间整理一下,权当是一种休闲娱乐吧!

闲话少说,下面就使用Click开发一个最简单的Web应用。

(一)准备工作

  1. 从Apache官网上下载click-2.3.0.zip,解压到本地磁盘;
  2. 使用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 会确保所有添加到页面模型中的对象都在页面模版中可用。 

 
  
  1. package com.jonny.click.sample.page;
  2. import org.apache.click.Page;
  3. public class HelloWorldPage extends Page{
  4. private static final long serialVersionUID = -3770478730293725405L;
  5. private String message = "HelloWorld";
  6. public HelloWorldPage() {
  7. addModel("message", message);
  8. }
  9. }

 2, 在WebContent下新建hello-world.htm,使用$message来获取页面的message变量;

 
  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  5. <title>HelloWorld</title> 
  6. </head> 
  7. <body> 
  8.     $message  
  9. </body> 
  10. </html> 

 3,修改WEB-INF下的web.xml文件;另外新增click.xml;

web.xml

所有Click 页面模板必须用.htm 扩展名,并且,ClickServlet 应该匹配来处理所有*.htm 的URL 请求。

 
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  5.     id="WebApp_ID" version="2.5"> 
  6.     <display-name>click-sample</display-name> 
  7.     <welcome-file-list> 
  8.         <welcome-file>hello-world.htm</welcome-file> 
  9.     </welcome-file-list> 
  10.     <servlet> 
  11.         <servlet-name>ClickServlet</servlet-name> 
  12.         <servlet-class>org.apache.click.ClickServlet</servlet-class> 
  13.         <load-on-startup>0</load-on-startup> 
  14.     </servlet> 
  15.     <servlet-mapping> 
  16.         <servlet-name>ClickServlet</servlet-name> 
  17.         <url-pattern>*.htm</url-pattern> 
  18.     </servlet-mapping> 
  19. </web-app> 

click.xml

Click会智能地识别HelloWorldPage来对应到模版hello-world.htm。我们只需要配置Page类所在的包就可以了。

 
  
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  2. <click-app charset="UTF-8"> 
  3.  
  4.   <pages package="com.jonny.click.sample.page"/> 
  5.  
  6.   <mode value="profile"/>   
  7.  
  8. </click-app> 

4,启动Web应用,访问hello-world.htm,就会看到HelloWorld几个大字了。