第一步:创建一个基于Servlet3.0的Maven Webapp工程
打开Eclipse,点击File>New>Maven Project 选择项目保存位置,默认为Workspace目录,点击Next, Archetype选择maven-archetype-webapp,点击Next,填写项目信息如图2-1,点击Finish完成创建。
标准的Maven Webapp目录结构如下:
--src |--main |--java |--resources |--webapp |--test |--java |--resources
而这里使用Eclipse 的Maven插件创建的目录并不完整,需要我们手动创建src/main/java、src/test/java、src/test/resources三个目录,创建后的项目目录结构如图2-2。
这里Maven Webapp的Webapp版本为2.3,也就是Servlet2.3,由于Smart 是基于Servlet3.0的,所以需要将Webapp的版本改为3.0。在workspace中找到HelloSmart项目,用文本编辑器打开HelloSmart/.settings/org.eclipse.wst.common.project.facet.core.xml ,将<installed facet="java" version="1.5"/> 、<installed facet="jst.web" version="2.3"/>改为<installed facet="java" version="1.7"/> 、<installed facet="jst.web" version="3.0"/>。然后删掉src/main/webapp/WEB-INF/web.xml文件,或将其内容改为如下代码:
HelloSmart
在Eclipse中打开项目的pom.xml文件,在<build>节点下添加如下配置:
选择HelloSmart项目,右键选择Maven>Update Project更新项目,到这里,一个基于Servlet3.0的Manve Webapp创建完成。maven-compiler-plugin 3.0
第二步:引入Smart Framework支持
我们是基于Smart Framework开发应用,那么这里就需要引入Smart Framework的支持了。因为使用Maven构建项目,那么Maven会根据pom.xml文件自动下载Smart 的JAR包,而这里我们只需要在pom中添加相应的依赖配置即可。依赖配置如下:
UTF-8 2.0 junit junit 4.11 test javax.servlet javax.servlet-api 3.0.1 provided javax.servlet jstl 1.2 runtime mysql mysql-connector-java 5.1.25 runtime com.smart smart-framework ${smart.version}
接下来需要添加Smart的配置文件,在src/main/resources下创建config.properties,文件中添加如下配置内容:
#应用名称 app.name=HelloSmart app.package=com.smart.app.hellosmart #项目静态资源目录 app.www_path=/www/ #jsp文件目录 app.jsp_path=/WEB-INF/jsp/ #应用首页 app.home_page=/index jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/smart jdbc.username=root jdbc.password=root jdbc.max.active=10 jdbc.max.idle=10 #i启用18n,这里暂不开启 i18n.reloadable=false
最后还需要配置log4j,在src/main/resources下创建log4j.properties,文件中添加如下配置内容:
log4j.rootLogger=INFO,console,file log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%m%n log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=${catalina.base}/logs/smart-bootstrap/log log4j.appender.file.DatePattern='_'yyyyMMdd log4j.appender.file.encoding=UTF-8 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} %p %c (%L) - %m%n log4j.logger.com.smart.framework=DEBUG log4j.logger.com.smart.plugin=DEBUG log4j.logger.com.smart.sample=DEBUG
以上是Smart的最简单的配置。
第三步:编写代码让Smart飞一会
首先创建一个欢迎页面,在app.jsp_path即 /WEB-INF/jsp/ 目录下创建一个名为index.jsp的文件,在页面输出一个“Hello Smart!”问候语。为该内容区域注册一个点击事件,当点击该区域后请求/hello资源,并将当前时间做为一个参数发送给Action处理。Index.jsp代码如下:
Hello Smart!
页面效果如图2-3。
接下来编写一个Action处理来自HTTP GET的请求/hello,在src/main/java/ 创建com.smart.app.hellosmart.action包,然后创建一个名为HelloSmartAction的类,在类上使用 注解标识该类为Action,然后创建一个prcoessHello()方法,处理/hello请求,最后将date参数格式化后返回给hello.jsp页面。HelloSmartAction.java 代码如下:
@Action public class HelloSmartAction { //请求映射,处理使用GET方法提交的 /hello 请求 @Request("GET:/hello") public Page prcoessHello(MapfieldMap){ //fieldMap中取出 date 参数,并使用框架提供的 CastUtil 将其转换为Long类型 Long date = CastUtil.castLong(fieldMap.get("date")); //使用框架的DateUtil格式化日期 String dateStr = DateUtil.formatDatetime(date); //将处理结果返回到hello.jsp 页面,并携带名为message的数据 return new Page("hello.jsp").data("message", "GET:/hello " + dateStr); } }
在jsp目录下创建hello.jsp如下:
<%=request.getAttribute("message") %>
页面显示如图2-4。
编写完以上代码后,将应用部署到Tomcat7中,启动Tomcat,访问 ,将会看到图2-3的页面,点击“Hello Smart”,将请求,服务器响应如图2-4页面。
一个最简单的基于Smart Framework的应用程序就运行起来了,让它再飞一会吧!