webwork是個優秀的開源架構,特别是其攔截器機制,我認為是整個系統最大的亮點,可在其上面做大量文章
我的開發環境為Eclipse3.0.1+lomoz,資料庫我用的是MySQL4.0.12,當然,也用到了mysqlcc,伺服器我用的是tomcat4.0.3和tomcat4.1
請先下載下傳webwork.,spring.,hibernate,并把JAR檔案放到web-inf的lib目錄裡面。同時,請下載下傳http://unc.dl.sourceforge.net/sourceforge/aopalliance/aopalliance.zip ,将aopalliance.jar放到lib目錄裡面。
還有webwork2-spring.jar,以及mysql的驅動都要下載下傳并放到lib裡面,缺一不可
然後是配置log4j,如果沒有正确配置log,TOMCAT将不能正常釋出你的項目。配置log4j很簡單,
在web-inf/classes下建立一個log4j.properties的檔案,内容如下
log4j.rootLogger=INFO, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=d:/Tomcat 4.1/webapps/demo/logs/log4j.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
其中log4j.appender.R.File這一項請按照你TOMCAT的安裝位置進行修改,關于log4j的詳細内容,推薦大家看Hilton的學習筆記以及IBM網站上的相關文章.
好了,開始我們的webwork之旅了。首先是配置web.xml檔案
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<web-app>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.atlassian.xwork.ext.ResolverSetupServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>/WEB-INF/webwork.tld</taglib-location>
</taglib>
</web-app>
我們配置了兩個監聽器,還有一個servlet,這個servlet負責action的轉發工作,關于action的詳細工作原理,大家可以參看xwork的源代碼
在接下來配置之前,我想大概說一下我想實作的功能,就是簡單的往mysql的一個表中插入一些資料
首先我用Middlegen-Hibernate和hibernate-extensions(我沒用eclipse的hibernate插件,我喜歡用這兩樣工具來生成)生成了表對應的hbm.xml檔案和兩個JAVA類,表的字段是"tablename,fieldname,chinesename", 表名是
"systable",其中tablename,fieldname做雙主鍵,這樣,生成出來的類應該是兩個,一個PK主鍵類和主類本身,我把他們加入到了我的項目中.
然後我做了一個接口類
package com.cz.struct;
public interface SystableDAO {
public abstract void insert(Systable data);
}
然後是實作類
package com.cz.struct;
import net.sf.*;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
public class SysTableDAOImp extends HibernateDaoSupport implements
SystableDAO{
public void insert(Systable data)
{
this.getHibernateTemplate().save(data);
}
}
為什麼要用接口類?因為spring會用到JAVA的動态代理,關于這部分,大家可以看xiaxin的spring指南
在insert 方法中,我直接調用了spring提供的hibernate模闆方法,真是友善呀
作者Blog:http://blog.csdn.net/tijichen/