Posted on 2007-09-30 09:40
詩特林 閱讀(40710)
評(píng)論(81) 編輯 收藏 所屬分類:
Struts
應(yīng)IT168寫的專稿.http://tech.it168.com/j/2007-09-24/200709240935075.shtml
Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)
Struts作為MVC 2的Web框架,自推出以來不斷受到開發(fā)者的追捧,得到廣泛的應(yīng)用。作為最成功的Web框架,Struts自然擁有眾多的優(yōu)點(diǎn):MVC 2模型的使用、功能齊全的標(biāo)志庫(Tag Library)、開放源代碼。而Spring的出現(xiàn),在某些方面極大的方面了Struts的開發(fā)。同時(shí),Hibernate作為對(duì)象持久化的框架,能顯示的提高軟件開發(fā)的效率與生產(chǎn)力。這三種流行框架的整合應(yīng)用,可以發(fā)揮它們各自的優(yōu)勢,使軟件開發(fā)更加的快速與便捷。
struts2發(fā)布已經(jīng)很久了,但關(guān)于如何使用它的教程及實(shí)例并不多。特別是與Spring及Hibernate等流行框架的集成,并不多見。現(xiàn)在就將筆者使用Myeclipse工具應(yīng)用struts2 + spring2 + hibernate3 實(shí)現(xiàn)CRUD操作的步驟一一紀(jì)錄下來,為初學(xué)者少走彎路略盡綿薄之力!在本文中,筆者將Struts2.0.6、Spring2.0.6和Hibernate3.1進(jìn)行整合,希望通過這樣的整合示例,讓讀者了解這些框架各自的特點(diǎn),以便于在自己的項(xiàng)目中,根據(jù)實(shí)際情況,盡快的過渡到Struts2的時(shí)代。本文的內(nèi)容基于Struts2.0.6。
一、 準(zhǔn)備工作
spring2與1.x區(qū)別不大,可以平滑的過度,筆者也是把spring1.28換成了spring2.0.6,算是升級(jí)到spring 2.0了。struts2基本就是webwork2.2,與以前的struts1.x可以說沒任何關(guān)系了。因?yàn)槭堑谝淮斡?/span>struts2,也是第一次用webwork,所以有很多不完善,不規(guī)范的地方,還望大家來拍磚。
開發(fā)環(huán)境:MyEclipse5.0+Eclipse3.2+JDK5.0+
Tomcat5.5+struts2+Spring2.0.6+Hibernate3.1。本示例通過對(duì)一個(gè)圖書進(jìn)行管理的系統(tǒng),提供基本的增加、刪除、修改、查詢等功能。
lib包需要以下右圖所示的這些包。其中Struts2.0.6的下載地址為:

http://people.apache.org/builds/struts/2.0.6
Hibernate3.1的下載地址為:
http://www.hibernate.org
spring2.0.6的下載地址為:
http://www.springframework.org
使用的數(shù)據(jù)庫為mysql 5.0,使用的JDBC驅(qū)動(dòng)JAR包為:mysql-connection-java-5.0.4-bin
創(chuàng)建數(shù)據(jù)表的sql語句為:
create database game
CREATE TABLE `books` (
`book_id` int(11) NOT NULL default '0',
`book_name` varchar(200) character set gb2312 default NULL,
`book_author` varchar(100) character set gb2312 default NULL,
`book_publish` varchar(100) character set gb2312 default NULL,
`book_date` date default NULL,
`book_isbn` varchar(20) default NULL,
`book_page` int(11) default NULL,
`book_price` decimal(10,2) default NULL,
`book_content` varchar(100) character set gb2312 default NULL,
PRIMARY KEY (`book_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=COMPRESSED;

二、 建立公共類
1、AbstractAction類
Struts2和Struts1.x的差別,最明顯的就是Struts2是一個(gè)pull-MVC架構(gòu)。Struts1.x 必須繼承org.apache.struts.action.Action或者其子類,表單數(shù)據(jù)封裝在FormBean中。Struts 2無須繼承任何類型或?qū)崿F(xiàn)任何接口,表單數(shù)據(jù)包含在Action中,通過Getter和Setter獲取。
雖然,在理論上Struts2的Action無須實(shí)現(xiàn)任何接口或者是繼承任何的類,但是,在實(shí)際編程過程中,為了更加方便的實(shí)現(xiàn)Action,大多數(shù)情況下都會(huì)繼承com.opensymphony.xwork2.ActionSupport類,并且重載(Override)
package com.sterning.commons;

import com.opensymphony.xwork2.ActionSupport;


public class AbstractAction extends ActionSupport
{
}

com.sterning.commons.AbstractAction.java
參考JavaDoc,可知ActionSupport類實(shí)現(xiàn)了接口:
com.opensymphony.xwork2.Action
com.opensymphony.xwork2.LoaleProvider
com.opensymphony.xwork2.TextProvider
com.opensymphony.xwork2.Validateable
com.opensymphony.xwork2.ValidationAware
com.uwyn.rife.continuations.ContinuableObject
java.io.Searializable
java.lang.Cloneable
2、Pager分頁類
為了增加程序的分頁功能,特意建立共用的分頁類。
package com.sterning.commons;

import java.math.*;


public class Pager
{
private int totalRows; //總行數(shù)
private int pageSize = 5; //每頁顯示的行數(shù)
private int currentPage; //當(dāng)前頁號(hào)
private int totalPages; //總頁數(shù)
private int startRow; //當(dāng)前頁在數(shù)據(jù)庫中的起始行

public Pager()
{
}

public Pager(int _totalRows)
{
totalRows = _totalRows;
totalPages=totalRows/pageSize;
int mod=totalRows%pageSize;

if(mod>0)
{
totalPages++;
}
currentPage = 1;
startRow = 0;
}

public int getStartRow()
{
return startRow;
}

public int getTotalPages()
{
return totalPages;
}

public int getCurrentPage()
{
return currentPage;
}

public int getPageSize()
{
return pageSize;
}

public void setTotalRows(int totalRows)
{
this.totalRows = totalRows;
}

public void setStartRow(int startRow)
{
this.startRow = startRow;
}

public void setTotalPages(int totalPages)
{
this.totalPages = totalPages;
}

public void setCurrentPage(int currentPage)
{
this.currentPage = currentPage;
}

public void setPageSize(int pageSize)
{
this.pageSize = pageSize;
}

public int getTotalRows()
{
return totalRows;
}

public void first()
{
currentPage = 1;
startRow = 0;
}

public void previous()
{

if (currentPage == 1)
{
return;
}
currentPage--;
startRow = (currentPage - 1) * pageSize;
}

public void next()
{

if (currentPage < totalPages)
{
currentPage++;
}
startRow = (currentPage - 1) * pageSize;
}

public void last()
{
currentPage = totalPages;
startRow = (currentPage - 1) * pageSize;
}

public void refresh(int _currentPage)
{
currentPage = _currentPage;

if (currentPage > totalPages)
{
last();
}
}
}

com.sterning.commons.Pager.java
同時(shí),采用PagerService類來發(fā)布成為分頁類服務(wù)PagerService,代碼如下:
同時(shí),采用PagerService類來發(fā)布成為分頁類服務(wù)PagerService,代碼如下:
package com.sterning.commons;


public class PagerService
{

public Pager getPager(String currentPage,String pagerMethod,int totalRows)
{
// 定義pager對(duì)象,用于傳到頁面
Pager pager = new Pager(totalRows);
// 如果當(dāng)前頁號(hào)為空,表示為首次查詢?cè)擁?br />
// 如果不為空,則刷新pager對(duì)象,輸入當(dāng)前頁號(hào)等信息

if (currentPage != null)
{
pager.refresh(Integer.parseInt(currentPage));
}
// 獲取當(dāng)前執(zhí)行的方法,首頁,前一頁,后一頁,尾頁。

if (pagerMethod != null)
{

if (pagerMethod.equals("first"))
{
pager.first();

} else if (pagerMethod.equals("previous"))
{
pager.previous();

} else if (pagerMethod.equals("next"))
{
pager.next();

} else if (pagerMethod.equals("last"))
{
pager.last();
}
}
return pager;
}
}

com.sterning.commons.PagerService.java
未完待續(xù),下節(jié)開始編寫數(shù)據(jù)持久化層.........
評(píng)論
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-09-30 09:48 by
頂一下!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-09-30 10:48 by
支持!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-09-30 13:52 by
國慶了,祝樓主國慶快樂
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-09-30 21:03 by
學(xué)習(xí)了,現(xiàn)在在學(xué)webwork2~~
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-10-04 15:14 by
good,不錯(cuò),期待更多與struts2和webwork相關(guān)的。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-10-08 21:39 by
導(dǎo)入你你提供的源碼,包也按要求加入了,我的struts2.0.9,提示說三個(gè)jsp文件都找不"/struts-tags"。。。。。。。。。。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-10-09 10:38 by
@hehe
如果還不行的話,請(qǐng)留下email,我將整個(gè)包含在jar包的代碼發(fā)送給你.
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-09 13:06 by
運(yùn)行不了啊
發(fā)給包行啊?
yangjianxiang2@163.com
謝謝
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-09 13:26 by
yangjianxiang2@163.com
謝謝
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-09 14:24 by
包解壓 出錯(cuò)
再發(fā)下行么?
謝謝
yangjianxiang2@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-09 19:27 by
我用的是Struts2.0.7,導(dǎo)入你的例子后,Resin啟動(dòng)就出錯(cuò)了。你打個(gè)完整的包給我好嗎?
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-09 19:28 by
我用的是Struts2.0.7,導(dǎo)入你的例子后,Resin啟動(dòng)就出錯(cuò)了。你打個(gè)完整的包給我好嗎?
EMAIL:netseas@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-10-18 13:04 by
請(qǐng)打一份給我,THS
shuisheng.cao@inforlion.com.cn
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2007-10-24 20:14 by
打個(gè)完整的包給我吧,謝謝
shuishou543@sina.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-28 00:57 by
將愛心進(jìn)行到底,也給我發(fā)一份吧,先致謝了knowless.zh@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-30 17:11 by
我已經(jīng)搭建起來了,不知道為什么進(jìn)入增加和修改頁面時(shí)很慢,查詢和翻頁比較快,請(qǐng)斑竹或那位大俠指點(diǎn)一下.謝謝.
郵件或msn: wanliyun1110@hotmail.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2007-10-30 22:34 by
I can not deploy it.
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring-context/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-01-21 20:21 by
打個(gè)完整的包給我吧,謝謝
Lemuel2525@126.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-01-31 17:33 by
Thank you very much for providing the sample
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-02-10 23:39 by
e_hang@sina.com.cn
發(fā)個(gè)包吧,謝謝!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-02-10 23:47 by
剛發(fā)現(xiàn)你這個(gè)好東西,弄了好久還是運(yùn)行不了,樓主發(fā)個(gè)完整的包給我吧,謝謝!
e_hang@sina.com.cn
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-02-22 22:17 by
打個(gè)完整的包給我吧,謝謝
good5168@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-02-26 16:49 by
也給我發(fā)一份完整包吧 謝謝樓主
wy-shaka@hotmail.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-02-27 22:51 by
弄了兩天,沒弄出來,著急,!!!為何調(diào)的時(shí)候會(huì)在book.hbm.xml的<class name="com.sterning.books.model.Books" table="books">中的books提示"cannt resolve table books"呢,麻煩樓主發(fā)個(gè)完整的包給我吧,xiaohuiwork@126.com,謝謝!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-03-01 15:28 by
我正急用,寫論文,也打個(gè)完整的包給我吧謝謝了我的郵箱happycatcl@yahoo.cn
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-03-03 10:32 by
cscpswang@qq.com
整套包
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-03-14 14:44 by
麻煩傳給我一份,謝謝了;
onlyloveyou937@sohu.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-03-15 00:34 by
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Cannot create PoolableConnectionFactory (Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect
調(diào)試有上面的錯(cuò)誤信息,能發(fā)個(gè)完整包給我么
hncs48hours@126.com
謝謝!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-03-15 00:36 by
我用的是SQL server 2000
hibernate以及數(shù)據(jù)庫該怎么弄?
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-03-15 18:12 by
導(dǎo)入到myeclipse 6 中提示hibernate不是一個(gè)myeclipse工程,這問題怎么解決?難道必須要搭建eclipse-myeclipse環(huán)境才可以么?
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-03-30 00:00 by
非常感謝!樓主好人啊!
對(duì)了,麻煩樓主件事好嗎?我不會(huì)下ognl的源碼,可以發(fā)一個(gè)到我的郵箱嗎?5515068@qq.com 謝謝了!!!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-04-17 21:44 by
將愛心進(jìn)行到底,也給我發(fā)一份吧,先致謝了richard-cao945@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-04-29 10:10 by
真好啊,摟主業(yè)發(fā)一份給我吧,謝謝啦,antiwar66@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-05-15 14:23 by
我也正在學(xué)習(xí)中,希望樓主能給包發(fā)給我
謝謝!!!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-05-15 14:25 by
我的郵箱diyi116@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-05-21 16:36 by
你好,首先感謝樓主辛勤勞作,源碼下載不了。請(qǐng)放個(gè)源碼給我
email:dql206@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-05-21 17:34 by
您好!謝謝您的無私奉獻(xiàn)!能發(fā)一份兒給我嘛!郵箱是wd_ww_w@yahoo.com.cn
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-05-21 18:18 by
不錯(cuò)....
加油
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-05-27 09:45 by
希望樓主給我也發(fā)一份 !非常感謝 rex.hao@gmail.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-06-11 15:21 by
希望樓主給我也發(fā)一份 !非常感謝 mysoft_ok@126.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-06-16 11:55 by
希望樓主給我也發(fā)一份 !非常感謝 oceanyu@126.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-06-27 16:27 by
謝謝啊,真的很不錯(cuò)!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2008-07-14 14:09 by
您好,如何用struts2的標(biāo)簽調(diào)用JAVA的靜態(tài)方法?
<s:if test="org.apache.WebUtil.getCurrUser().isLoginStatus()">
歡迎您,<s:text name="org.apache.WebUtil.getCurrUser().getNickName()"/>
</s:if>
這是我的想法,但是不行。:(
還望指教。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-09-07 23:05 by
樓主,可以給我份嗎?希望不會(huì)遲了就沒有了。寫感謝樓主咯
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-09-14 23:43 by
幫幫,樓主發(fā)個(gè)完整的包給我吧,謝謝!
辛苦了。
sw9408@163.com
本人現(xiàn)正干java,希望能跟樓主交個(gè)朋友 我的qq 120372298
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-10-17 17:24 by
請(qǐng)樓主也給我一份。luoyexian@163.com 謝謝
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-10-22 10:18 by
commons-collections
commons-collections-2.1.1
commons-dbcp
commons-dbcp-1.2.1
commons-logging
commons-logging-1.0.4
logging-pool
logging-pool-1.2
請(qǐng)問這4對(duì)jar包,我只用其中的一個(gè)行不行?
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-10-31 13:16 by
我也做了一個(gè)Struts2+Spring2+Hibernate3 的購書的,可以不知道怎么會(huì)事,后面出問題了,就是jsp跳進(jìn)Action中不做處理直接跳入INPUT對(duì)應(yīng)的頁面。而且,如果我不用INPUT就struts.xml就報(bào)錯(cuò)。不知道為什么。
請(qǐng)幫幫忙。我的QQ是364215450
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-11-18 11:21 by
你好。可以發(fā)一份給我嗎?謝謝 li2004-7-23@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-11-18 14:47 by
@李志強(qiáng)
可以!我的可以跑了。很好的
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2008-11-28 16:22 by
你好。可以發(fā)一份給我嗎?謝謝 liyinfei6688@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-02-12 15:16 by
樓主好有才啊!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-02-26 22:48 by
請(qǐng)發(fā)一份給我。
chenlian1226@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-03-02 15:48 by
嚴(yán)重: Context startup failed due to previous errors
有我一份啊,辛苦了~!
davidgyg826@gmail.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-03-03 14:15 by
哥們, 您好, 看了您做的東西, 很好, 可惜我這里跑不起來 難道是和我的環(huán)境有關(guān)系嗎 能幫忙下嗎。 我Q 531608565 謝謝您。。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-03-18 09:50 by
看了你的介紹受益匪淺,可是運(yùn)行你的程序老是報(bào)包錯(cuò)誤,你給看看,實(shí)在不行發(fā)一個(gè)完整的給我,郵箱:q_c114@163.com,謝謝了,下面是異常信息
java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:118)
at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
at org.hibernate.tuple.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:131)
at org.hibernate.tuple.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:257)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:412)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:216)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
09:21:37,187 WARN [PojoEntityTuplizer] could not create proxy factory for:com.sterning.books.model.Books
org.hibernate.HibernateException: CGLIB Enhancement failed: com.sterning.books.model.Books
at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:132)
at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
at org.hibernate.tuple.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:131)
at org.hibernate.tuple.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:257)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:412)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:216)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-04-22 15:55 by
你真厲害 我老崇拜你了
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-05-14 21:09 by
大蝦,能不能做個(gè)maven版本的讓我們學(xué)習(xí)學(xué)習(xí)
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-05-16 14:31 by
樓主,我的郵箱supernebula@126.com,正在學(xué)習(xí)java,發(fā)份源碼好好學(xué)習(xí),謝謝
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-05-31 17:42 by
你好。很好的介紹,可以發(fā)一份給我嗎?謝謝 zhufei1112@yahoo.com.cn
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-06-01 14:03 by
樓主,我好久沒用Java想學(xué)習(xí)學(xué)習(xí)發(fā)我一份可以么?
我郵箱jacksang@yeah.net謝謝
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-06-18 20:12 by
太感謝你了樓主
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-08-08 09:43 by
你實(shí)在太有才華了
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-08-13 16:25 by
樓主也發(fā)一份給我吧,謝謝!我的郵箱是pan.guanhui@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-08-22 15:31 by
終于找到個(gè)完整版的,麻煩樓主發(fā)給我一份。
1007915459@qq.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-08-24 14:09 by
謝謝樓主分享,打包的也給我發(fā)一份吧,lovesunshine2003@yahoo.cn,再次感謝!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2009-10-15 21:57 by
謝謝樓主了,能發(fā)份給我嗎?lcily2007@126.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-10-23 09:52 by
導(dǎo)入出錯(cuò)了,麻煩發(fā)一個(gè)完整的包到minidxer#gmail.com可以嗎?謝謝啦!!!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-11-02 08:36 by
真的很不錯(cuò),源代碼也能運(yùn)行,非常感謝。。。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-11-05 12:35 by
@zoboya
可以的 他們都是一樣的 只是版本的問題
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2009-12-19 17:25 by
henhao
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2010-01-07 15:35 by
急需!!struts2+hibernate+spring整合例子!現(xiàn)在遇到大困難!尋求你幫助!謝謝!請(qǐng)給我發(fā)一份!郵箱:935670362@qq.com!謝謝了!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2010-01-20 15:55 by
終于搞出來了!Thank you!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2010-01-20 15:57 by
@minidxer
你自己寫個(gè)啥!根據(jù)他的代碼敲進(jìn)去,對(duì)自己還好些。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2010-03-12 14:03 by
給我發(fā)一個(gè)能運(yùn)行的程序好嗎? 謝謝了
郵箱:tiandh930@163.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2010-03-12 17:28 by
可以運(yùn)行的! 我直接下載的 不用給我發(fā)了!謝謝 能告訴我你的QQ號(hào)嗎?MSN也可以
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2010-05-11 14:39 by
樓主,謝謝您,給我發(fā)一份吧!
huang_zi_juan@sina.com
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2010-07-16 09:00 by
@hsun
我也出現(xiàn)這樣的問題了
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2011-09-27 20:47 by
你好啊,可以將整套發(fā)給我嗎?我按照你 的寫法去寫,都沒有用。是否把它達(dá)成包發(fā)給我啊?數(shù)據(jù)庫也一起給我!
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一) 回復(fù) 更多評(píng)論
2011-12-16 09:41 by
試了一下樓主的程序,發(fā)現(xiàn)不能通過的有幾個(gè)要注意的:
1.spring配置文件:srping-Context/applicationContext.xml。這個(gè)要特別注意路徑,樓主網(wǎng)頁上的代碼里路徑是:srping-Content,(srping-content/applicationContent.xml )但在web.xml中寫的是
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-context/applicationContext.xml</param-value>
</context-param>
所以啟動(dòng)時(shí)找不到是肯定的。
2.log4j.properties文件需要自己添加的。
3.<filter-class>com.sterning.commons.SetCharacterEncodingFilter</filter-class>這個(gè)可能會(huì)報(bào)錯(cuò),樓主沒有貼這個(gè)類的代碼,所以找不到,自己可以寫這個(gè)類,也可以去掉web.xml中的過濾器配置。
4.還遇到一個(gè)問題:java.lang.IllegalStateException: Web app root system property already
set to different value: 'webapp.root' = [D:\Program Files\tomcat6
\webapps\esis\] instead of [D:\Program Files\tomcat6\webapps\esisOne\]
- Choose unique values for the 'webAppRootKey' context-param in your
web.xml files!
在參照樓主的程序?qū)嶒?yàn)時(shí),可能會(huì)遇到這個(gè)問題,解決方法:在web.xml中加上:<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app1.root</param-value>
</context-param>
以上是我學(xué)習(xí)時(shí)遇到的問題,如有錯(cuò)誤的地方,還請(qǐng)指出來!我也是新手,剛剛開始學(xué)ssh框架的web開發(fā)。
# re: Struts2+Spring2+Hibernate3 web應(yīng)用示例(一)[未登錄] 回復(fù) 更多評(píng)論
2012-04-09 09:28 by
發(fā)分源代碼:sinxsoft@gmail.com
謝謝了。