在Netbeans中使用Struts20Spring2_第1頁(yè)
在Netbeans中使用Struts20Spring2_第2頁(yè)
在Netbeans中使用Struts20Spring2_第3頁(yè)
在Netbeans中使用Struts20Spring2_第4頁(yè)
在Netbeans中使用Struts20Spring2_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一2008-09-22 15:12:19 查看( 2015 / 評(píng)論( 1 中加入了,Struts,Hibernate的支持,可以滿足現(xiàn)在大部分企業(yè)應(yīng)用SSH框架的開(kāi)發(fā)需求。本文將用一個(gè)簡(jiǎn)單的登陸例子來(lái)介紹如何在中使用SSH框架進(jìn)行企業(yè)級(jí)開(kāi)發(fā)。本節(jié)介紹示例的準(zhǔn)備工作、OR映射以及相關(guān)配置的方法。下一節(jié)則介紹頁(yè)面層和框架整合的關(guān)鍵技術(shù)。軟件需求:,下載并安裝,支持以及庫(kù)文件的插件3、MySQL 5數(shù)據(jù)庫(kù)及JDBC驅(qū)動(dòng)4、Struts+Spring整合方案庫(kù) JDBC驅(qū)動(dòng)和整合庫(kù)在這里。實(shí)驗(yàn)步驟:1、1、在My

2、SQL中建立數(shù)據(jù)庫(kù)sshdemo,執(zhí)行以下腳本:SET FOREIGN_KEY_CHECKS=0;- - Table structure for user- -CREATE TABLE user (userId bigint(20 NOT NULL auto_increment,userName varchar(20 NOT NULL,password varchar(30 NOT NULL,PRIMARY KEY(userIdENGINE=InnoDB DEFAULT CHARSET=utf8;- - Records- -INSERT INTO user VALUES (1, mg, 123

3、;2、2、在Netbeans6.1中建立Web工程,在選擇框架時(shí)選擇Spring Web MVC2.5及Struts2.0和Hibernate,命名為SSHDemo,如下圖所示:點(diǎn)擊工程右鍵-屬性-庫(kù)-添加Jar文件,加入ssh_lib.zip包中的兩個(gè)包。3、3、在源包中新建包po,dao,service,action四個(gè)包,分別用來(lái)放置ORM映射、數(shù)據(jù)庫(kù)操作、業(yè)務(wù)邏輯以及Struts的Action。4、4、建立Model,在po包中新建類User,代碼如下:public class User private String name;private long id;private Strin

4、g password;單擊右鍵,選擇“重構(gòu)”-“封裝字段”,選擇所有字段進(jìn)行封裝,生成get和set方法。5、5、建立Model和數(shù)據(jù)庫(kù)的映射。生成在源包中右鍵單擊po包,新建-其他-Hibernate-Hibernate Configuration File,如下圖所示:點(diǎn)擊下一步,命名為hibernate1.cfg,點(diǎn)擊下一步,在database connection中把下拉框拉到最下面,點(diǎn)擊“新建數(shù)據(jù)庫(kù)連接”,如下圖所示:注意用戶名和密碼可以自己指定。最后點(diǎn)擊完成,在源包的缺省包中就會(huì)生成的Hibernate配置文件: org.hibernate.dialect.MySQLDialect

5、 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/sshdemo root root 在po包中點(diǎn)擊右鍵,選擇新建-其他-Hibernate-Hibernate Mapping File,命名為user.hbm,如下配置:點(diǎn)擊完成,生成user.hbm.xml,加入映射關(guān)系如下: 6、6、在Spring IoC容器中定義Hibernate的SessionFactory。打開(kāi)Web頁(yè)- WEB-INF applicationContext.xml,首先加入數(shù)據(jù)源的定義: 然后加入Hibernate的SessionFactory的定義: po/us

6、er.hbm.xml hibernate.dialect=org.hibernate.dialect.MySQLDialect Spring的配置文件有強(qiáng)大的提示功能:7、7、建立Dao接口及實(shí)現(xiàn)。在dao包中建立接口UserDao,代碼如下:public interface UserDao void save(User user throws Exception;User getUser(long userId;User getUser(String userName;建立實(shí)現(xiàn)類UserDaoImpl,代碼如下:package dao;import org.springframework.o

7、rm.hibernate3.support.HibernateDaoSupport;import po.User;/* author Administrator*/public class UserDaoImpl extends HibernateDaoSupport implements UserDaopublic void save(User user throws ExceptiontrygetHibernateTemplate(.save(user;catch(Exception errthrow err;public User getUser(long userIdreturn (U

8、sergetHibernateTemplate(.get(User.class, userId;public User getUser(String userName return (UsergetHibernateTemplate(.find(from User as u where = ?, userName.get(0;該類繼承于,以方便地使用getHibernateTemplate(獲得Hibernate支持。如getUser方法,可以用getHibernateTemplate(方法獲得工廠對(duì)象sessionFactory,調(diào)用find方法可以通過(guò)HQL語(yǔ)句來(lái)查找對(duì)象,而

9、不必再編寫(xiě)復(fù)雜的SQL語(yǔ)句。對(duì)實(shí)體的其他操作入插入操作則只需調(diào)用save方法。由于Dao類必須調(diào)用sessionFactory,因此必須通過(guò)Spring IoC容器為Dao類注入sessionFactory。在applicationContext.xml中添加以下配置: 至此,OR映射工作完成。下一節(jié)將介紹頁(yè)面層技術(shù),包括國(guó)際化方案。在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(二2008-09-22 15:13:34 查看( 1756 / 評(píng)論( 1 上一篇文章介紹了在中使用SSH框架的準(zhǔn)備工作及OR映射的方法,這篇文章則繼續(xù)介紹如何構(gòu)建視圖層和業(yè)務(wù)

10、邏輯層以及在此過(guò)程中整合Struts和Spring框架。1、建立業(yè)務(wù)邏輯。在service包中創(chuàng)建業(yè)務(wù)接口UserService,代碼如下:package service;import dao.UserDaoImpl;import po.User;/* author Administrator*/public interface UserServive void addUser(String userName, String password, int admin throws Exception; User getUser(long userId; User getUser(String u

11、serName; void setUserDao(UserDaoImpl userDao;創(chuàng)建實(shí)現(xiàn)類UserServiceImp,代碼如下:package service;import po.User;/* author Administrator*/public class UserServiceImpl implements UserServive private dao.UserDao userDao; public void addUser(String userName, String password, int admin throws Exception po.User user

12、 = new User(; /user.setId(10; user.setAdmin(admin; user.setName(userName; user.setPassword(password; try userDao.save(user; catch(Exception err throw err; public User getUser(long userId return userDao.getUser(userId; public void setUserDao(dao.UserDaoImpl userDao this.userDao = userDao; public User

13、 getUser(String userName return this.userDao.getUser(userName; 注意紅色部分代碼,為了訪問(wèn)數(shù)據(jù)庫(kù),必須引入userDao的對(duì)象,生成set的方法,并通過(guò)Spring IoC容器注入該屬性,在中增加以下配置: userDao的配置已經(jīng)在上一篇文章描述過(guò),引用的是以下這段配置: service的方法就是通過(guò)調(diào)用dao的實(shí)體方法來(lái)操作的,如上面代碼第二段紅色的部分。2、建立視圖。在web頁(yè)面的example目錄下新建JSP頁(yè)面,命名為L(zhǎng)ogin。在文件頭部添加的標(biāo)簽引入:在網(wǎng)頁(yè)body標(biāo)簽中加入以下代碼: 的標(biāo)簽庫(kù)功能很強(qiáng)大,網(wǎng)上有很多例

14、程,在這里就不詳述了。關(guān)鍵的地方是lable屬性里面的表達(dá)式,在這里,是為了國(guó)際化而設(shè)的。要在中使用i18N,我們首先要在源包-缺省包中新建一個(gè)屬性文件(點(diǎn)擊新建-其他-屬性文件),命名為struts。在中添加定義:struts.custom.i18n.resources=globalMessages這條語(yǔ)句指定資源文件的前綴,例如中文的資源文件可以命名為globalMessages_zh_CN,英文的可以命名為globalMessages_en_US。我們?cè)谌笔“蟹謩e創(chuàng)建這兩個(gè)屬性文件。在中文的資源文件中加入以下:username=用戶名password=密碼submit=提交英文的資源文

15、件加入:username=Usernamepassword=Passwordsubmit=Submit然后就可以在JSP頁(yè)面中用%getText(username的表達(dá)式來(lái)指定要讀出的字符串了。在中,我們不必再手動(dòng)地把中文轉(zhuǎn)換為Unicode碼,框架會(huì)自動(dòng)轉(zhuǎn)換。3、創(chuàng)建Action。在action包中點(diǎn)擊右鍵-新建-其他-Struts2-Struts2 Action,命名為L(zhǎng)oginAction。中不再需要?jiǎng)?chuàng)建ActionForm,只要生成屬性的get和set方法,就能夠獲取到頁(yè)面標(biāo)簽name屬性對(duì)應(yīng)的值。在這里,LoginAction繼承。代碼如下:package action;import

16、 com.opensymphony.xwork2.ActionSupport;import java.util.Locale;import org.springframework.context.support.ResourceBundleMessageSource;import po.User;import service.UserServiceImpl;/* author mg*/public class LoginAction extends ActionSupport private UserServiceImpl userService; private String message

17、; private String username; private String password; private ResourceBundleMessageSource messageSource; public LoginAction( Override public String execute( throws Exception User usr = userService.getUser(username; if(usr != null if(usr.getPassword(.equals(password message = messageSource.getMessage(l

18、oginSuccess, null,Locale.CHINA; else message = messageSource.getMessage(pswError, null,Locale.CHINA; else message = messageSource.getMessage(usrError, null,Locale.CHINA; return SUCCESS; public void setUserService(UserServiceImpl userService this.userService = userService; public String getMessage( r

19、eturn message; public void setMessage(String message this.message = message; public String getUsername( return username; public void setUsername(String username this.username = username; public String getPassword( return password; public void setPassword(String password this.password = password; public void setMessageSource(ResourceBundleMessageSource messageSource this.messageSource = messageSource; 注意紅色代碼的屬性。其中ResourceBundleMessageSource是中處理國(guó)際化信息的類,UserServiceImp是操作User實(shí)體的業(yè)務(wù)邏輯類。這兩個(gè)類的實(shí)例都是通過(guò)Spring IoC容器管理和注入的。因此,必須在中添加配置: value=messages / 在缺省包中添加屬性文件,注意文件名要以messageSource的bean

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論