You are on page 1of 57

I HC KHOA HC T NHIN KHOA CNG NGH THNG TIN

CQ HK1 2k9 2k10

N TM HIU Mn Cng ngh Java cho h thng phn tn

Bo co tm hiu Spring MVC Framwork


Version 3.0

Sinh vin thc hin: 0612089 Nguyn c Linh Giang 0612119 Nguyn c Hong

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Mc lc
1 Gii thiu v Spring MVC Framework :
1.1 1.2 Spring Framework : Spring MVC Framework : Cc thnh phn quan trng nht v chc nng ca mt Spring MVC framework: Lung x l request trong Spring MVC Framework :

2
2 3 3 4

1.2.1 1.2.2

ng dng minh ho c bn (Hello world):


2.1 2.2 Mi trng trin khai ng dng : Cc bc thc hin : To mt Project Spring Web MVC bng NetBeans : Phn tch cc thnh phn trong Project : Pht trin mt ng dng n gin :

5
5 6 6 9 11

2.2.1 2.2.2 2.2.3

ng dng minh ho nng cao :


3.1 3.2 Pht biu bi ton Cc bc xy dng: To CSDL v lin kt kho ngoi To Project p dng Spring Framework v Hibernate Pht sinh cc mapping file v pojos tng ng cho Hibernate Tao cc lp DAO v BUS To Controller cho chc nng thm sn phm mi : To Views : Config Controller : To Validation :

22
22 22 22 28 32 39 42 46 49 52

3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8

4 5

Cc u im v khuyt im ca Spring MVC Web Framework : Ti liu tham kho :

56 56

FIT-HCMUS

Trang 1

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Gii thiu v Spring MVC Framework :

1.1 Spring Framework :


Spring l mt Framework m ngun m c phin bn dng cho Java Platform v c .NET Platform. Phin bn u tin c vit bi Rod Johnson v a ra cng cun sch Expert One-on-One J2EE Design and Development c xut bn thng 10 nm 2002. Spring Framework c th dng cho tt c cc ng dng vit bng Java, nhng n thnh cng nht trn lnh vc ng dng web trn nn Java EE. Spring Framework gm cc module chnh sau :

Inversion of Control container: hiu chnh cc components ca chng trnh v qun l vng i (lifecycle) ca cc i tng Java. Aspect-oriented programming: k thut lp trnh mi cho php ng gi nhng hnh vi c lin quan n nhiu lp Data access: lm vic vi relational database management systems (h thng qun l c s d liu quan h) trn nn Java platform s dng JDBC v cng c object-relational mapping. Transaction management: thng nht cc hm APIs qun l transaction v iu phi transactions cho i tng Java. Model-View-Controller (MVC) mt framework da trn HTTP v Servlet cung cp kh nng m rng v ty bin nhiu hn. Remote Access framework: hiu chnh RPC-style trong vic import v export cc i tng java thng qua mng li h tr phng thc RMI, CORBA v HTTP bao gm SOAP. Convention-over-configuration: mt chng trnh nhanh mnh trong vic pht trin cc hng gii quyt cho ci chng trnh s dng Spring enterprise. Batch processing: mt framework tt cho vic x l mt lng ln thng tin v hm nh logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. Authentication and authorization: hiu chnh ch an tan bo mt, cung cp cc phng thc, chng trnh mc c bn cho chng trnh s dng Spring. Remote Management: hiu chnh cch hin th v qun l cc i tng java mc local hoc remote qua JMX. Messaging: hiu chnh vic x l cc thong tin trao i gia cc i tng da trn chun JMS APIs. Testing: cung cp cc lp h tr vic vit cc unit kim tra v phn tch li.

Trong ti tm hiu ny. Ch quan tm v cp n module Model-View-Controller (MVC) trong Spring Framework. Ta gi n l Spring MVC Framework.

FIT-HCMUS

Trang 2

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

1.2 Spring MVC Framework :


Tng t nh Struts, Spring MVC l mt request-based framework. H nh ngha cc phng php chung cho tt cc cc response phi c gii quyt bng mt request-based framework. Mc ch ca h n gin l d dng hn cho developer vit cc b sung v cc ci tin ca ring h. Spring MVC gip cho vic xy dng ng dng web mt cch cht ch v linh ng. Mu thit k ModelView-Controller gip phn chia rch ri 3 cng vic business logic, presentation logic, v navigation logic. Models chu trch nhim ng gi d liu ca ng dng. Views c nhim v hin th thng tin cung cp bi i tng Model tr v cho ngi dng. Controllers chu trch nhim nhn request t ngi dng v gi cc dch v bn di x l. 1.2.1

Cc thnh phn quan trng nht v chc nng ca mt Spring MVC framework: DispatcherServlet l mt lp ng ra qun l ton b cc hnh ng ca framework (front controller) trong sut qu trnh thc thi cc lnh thng qua HTTP request. HandlerMapping: chn mt i tng s x l cc request da trn cc thuc tnh v iu kin ca cc request . HandlerAdapter: thc thi cc handler c chn. Controller: ng gia Model v View qun l cc request c gi ti v chuyn cc response chnh xc.

View: chu trch nhim tr cc respone cho client. ViewResolver: chn phng php view da trn cc logical name c sn ca View. HandlerInterceptor: ngn chn (lc) cc request t user. N c coi nh Servlet filter (ko bt buc v ko b qun l bi DispatcherServlet). LocaleResolver: x l v lu mt phn cc thng tin ca user. MultipartResolver: lm cho vic upload file d dng hn bng cch gi cc request li.

FIT-HCMUS

Trang 3

Spring MVC Framwork Bo co tm hiu


1.2.2 Lung x l request trong Spring MVC Framework :

Phin bn: 3.0 Ngy: 15/05/2010

Trch t http://www.vaannila.com/spring/spring-mvc-tutorial-1.html

Vic x l request v response trong Spring MVC Framework c m t nh sau : Bc 1 : o DispatcherServlet nhn Request. o DispatcherServlet tra trong HandlerMapping v gi Controller kt hp vi Request. Bc 2 : o Controller x l Request bng cch gi nhng phng thc dch v thch hp v sau tr v mt i tng ModelAndView cho DispatcherServlet. i tng ModelAndView ny cha d liu trong i tng Model v tn ca View. Bc 3 : o DispatcherServlet gi tn ca View n cho mt ViewResolver. ViewResolver s tm View thc s cn dng. Bc 4 : o DispatcherServlet truyn i tng Model n cho View xc nh hin th kt qu. o View ly d liu trong i tng Model v hin th kt qu cho ngi dng.

FIT-HCMUS

Trang 4

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

ng dng minh ho c bn (Hello world):

Sau y l mt v d HelloWorld n gin p dng Spring MVC Framework.

2.1 Mi trng trin khai ng dng :


IDE : NetBeans IDE 6.8

Web Server : Apache Tomcat 6.0.20

FIT-HCMUS

Trang 5

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

2.2 Cc bc thc hin :


2.2.1 To mt Project Spring Web MVC bng NetBeans :

1. Click File

2. Click New Project

3. Click Java Web 4. Select Web Application

5. Click Next

FIT-HCMUS

Trang 6

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

6. Nhp Project Name 7. Chn ni lu tr

8. Click Next

9. Chn Server l Apache Tomcat 6.0.20

10. Click Next

FIT-HCMUS

Trang 7

Spring MVC Framwork Bo co tm hiu


11. Check chn Spring Web MVC 2.5

Phin bn: 3.0 Ngy: 15/05/2010

12. Click Finish

Kt qu ta c Project SpringMVCHelloWorld vi cu trc th mc nh sau :

FIT-HCMUS

Trang 8

Spring MVC Framwork Bo co tm hiu


Run ng dng ta c c kt qu nh sau :

Phin bn: 3.0 Ngy: 15/05/2010

2.2.2

Phn tch cc thnh phn trong Project :

Trong file web.xml, ta thy c dng thit lp ch trang ch ca ng dng l redirect.jsp nh sau cui file :

Trong file redirect.jsp ch lm duy nht mt vic l redirect tt c nhng request gi n ti index.htm :

Cng trong file web.xml ta thy dng khai bo v nh x sau :


Servlet dispatcher l lp k tha t org.springframework.web.servlet.DispatcherServlet

nh x tt c requests c mu URL khp *.htm cho lp DispatcherServlet ca Spring ny

FIT-HCMUS

Trang 9

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Class DispatcherServlet qun l nhng request n ng dng da trn nhng thit lp cu hnh c tm thy trong file dispatcher-servlet.xml Gi ta xt n file dispatcher-servlet.xml , ta ch n on code sau :
Khi DispatcherServlet nhn mt request khp *.htm nh l index.htm n s tm bn trong urlMapping ny mt controller cung cp cho request .

nh x index.htm vi indexController

viewResolver nhn vo Logical view name t indexController v tm trong th mc /WEB.INF/jsp/ trang jsp c tn tng ng.

indexController l lp k tha t org.springframework.web.servlet.mvc.ParameterizableViewController y l lp c cung cp bi Spring v n n gin s tr v 1 view.

Logical view name : Dng viewResolver x l

iu ny cho php nh v nhng file trong gi file WAR ca ng dng lc runtime v response vi trang jsp tng ng.

FIT-HCMUS

Trang 10

Spring MVC Framwork Bo co tm hiu


2.2.3 Pht trin mt ng dng n gin :

Phin bn: 3.0 Ngy: 15/05/2010

2.2.3.1 Tng quan :

ng dng ny s bao gm 2 trang JSP hay cn gi l 2 View trong cng ngh Spring Web MVC. View th nht cha 1 form HTML vi mt field yu cu nhp tn ca ngi dng. View th 2 l mt trang n gin ch vic hin th : Hello + [tn ngi dng va nhp]

Nhng views ny s c qun l bi mt controller, controller ny s nhn request v quyt nh view no c tr v. N cng s truyn cho view c chn nhng thng tin cn thit view hin th, nhng thng tin ny c gi l Model. Ta s t tn controller ny l HelloController. Trong nhng ng dng web phc tp, nhng x l nghip v thuc tng Business Logic khng c cha trc tip trong controller m thay vo nhng thc th khc gi l service c dng bi controller khi n cn thc hin nhng nghip v ca tng Business Logic. Trong ng dng ny, nghip v cn x l l vic tnh ton v to ra cu thng ip hello, cho nn v mc ch ny ta to mt lp HelloService.
2.2.3.2 Implementing the HelloService :

1. Phi chut here

2. Chn Java Class

FIT-HCMUS

Trang 11

Spring MVC Framwork Bo co tm hiu


3. Nhp Class Name : HelloService

Phin bn: 3.0 Ngy: 15/05/2010

4. Nhp Package : service

5. Click Finish

Ta c lp HelloService c to :

FIT-HCMUS

Trang 12

Spring MVC Framwork Bo co tm hiu


Thm vo lp ny phng thc sayHello nh sau :

Phin bn: 3.0 Ngy: 15/05/2010

2.2.3.3 Implementing the Controller and Model y ta c th dng mt SimpleFormController qun l d liu ngi dng v xc nh view no c tr v.
1. Click File 2. Click New File

4. Click Simple Form Controller 3. Click Spring Framework

5. Click Next

FIT-HCMUS

Trang 13

Spring MVC Framwork Bo co tm hiu


6. Nhp Class Name : HelloController

Phin bn: 3.0 Ngy: 15/05/2010

7. Nhp Package : controller

8. Click Finish

Kt qu ta to c lp HelloController :

Ta edit li constructor ca lp HelloController nh sau :

FIT-HCMUS

Trang 14

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Mt instance ca lp ny s c to vi mi request. t tn view c dng hin th thng ip Hello khi submit thnh cng t tn view c dng hin th form nhp tn

nh ngha tn ca command trong model

By gi ta cn to class Name nh mt bean n gin gi thng tin ca mi request. Tng t nh cch to lp trn. Phi chut vo project chn New => Java Class To mt lp tn l Name trong package pojo.

Trong lp Name ny ta to mt bin private value lu tn ngi dng nhp vo. Sau l cc phng thc get set. Nh sau :

Quay tr li class HelloController, ta xo phng thc doSubmitAction() i v b comment phng thc onSubmit() bn di. Phng thc onSubmit ny cho php ta t to ModelAndView. Import org.springframework.web.servlet.ModelAndView. Lp ModelAndView c tr v bi mt controller v c x l bi mt DispatcherServlet. View c th c ly da vo chui View Name m s c x l bi mt i tng ViewResolver, hoc i tng View c th c ch nh trc tip. Thm mt bin mc lp kiu HelloService cho HelloController. Import service.HelloService v thm nhng dng sau vo lp HelloController :

FIT-HCMUS

Trang 15

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Edit li phng thc onSubmit() nh sau :

Vo file applicationContext.xml ng k HelloService. ang k ta thm dng code sau :

FIT-HCMUS

Trang 16

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Sau thc hin ng k HelloController trong file dispatcher-servlet.xml :

V ng k mapping controller ca chung ta vi url mong mun c x l :

FIT-HCMUS

Trang 17

Spring MVC Framwork Bo co tm hiu


2.2.3.4 Implementing the Views : Ta cn to 2 lp JSP : -

Phin bn: 3.0 Ngy: 15/05/2010

Ci th nht gi l nameView.jsp hin th trang welcome v cho php ngi dng nhp tn. Ci th hai gi l helloView.jsp hin th li cho cng vi tn ca ngi dng va nhp.
2. Click JSP 1. Phi chut here

3. Nhp File Name : helloView

4. Click Finish

FIT-HCMUS

Trang 18

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Edit li file helloView.jsp nh sau :

Tng t ta to mt trang JSP khc tn nameView.jsp tng t nh trn.

FIT-HCMUS

Trang 19

Spring MVC Framwork Bo co tm hiu


Thay i ni dung file ny nh sau :

Phin bn: 3.0 Ngy: 15/05/2010

Th vin cha nhng tags hu dng khi implement views

Cho php ch nh mt bean

Cho php kt buc vi mt thuc tnh ca mt bean

Tag spring:nestedPath ch nh mt bean v tag spring:bind kt buc tham s vi mt thuc tnh. ng dn n bean ny tr thnh name.value. Nh ci t t trc, tn command ca HelloController l name. V vy ng dn ny tham chiu n thuc tnh value ca bean tn l name trong phm vi trang. Cui cng m file redirect.jsp v i index.htm thnh hello.htm.

Sau Run ng dng :

FIT-HCMUS

Trang 20

Spring MVC Framwork Bo co tm hiu


Click OK :

Phin bn: 3.0 Ngy: 15/05/2010

FIT-HCMUS

Trang 21

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

ng dng minh ho nng cao :

Sau khi tri qua ng dng HelloWorld v hiu khi qut v cc bc cn thit cu hnh cho ng dng s dng Spring MVC Framework. Sau y l mt v d nng cao hn v gn vi thc t hn. ng dng s c y kin trc ca mt phn mm nn c. D liu ca ng dng c lu tr trong c s d liu.

3.1 Pht biu bi ton


Xy dng chc nng thm thm sn phm mi cho mt ng dng web thng mi in t. lu tr d liu cho chc nng ny ta cn 2 bng DanhMuc v SanPham vi quan h kho ngoi nh hnh di

ng dng c xy dng theo kin trc 3 tng dng Spring MVC tng giao din (presentation) v Hibernate tng truy xut d liu.

3.2 Cc bc xy dng:
3.2.1 To CSDL v lin kt kho ngoi

3.2.1.1 Mi trng to lp : Trong ng dng ny ta s dng H qun tr CSDL MySQL cung cp bi XAMPP Control Panel :

C th download ti url sau : http://www.apachefriends.org/en/xampp-windows.html

FIT-HCMUS

Trang 22

Spring MVC Framwork Bo co tm hiu


3.2.1.2 Cc bc thc hin Sau khi ci t xong XAMPP v Navicat by gi ta bt u cng vic chnh -

Phin bn: 3.0 Ngy: 15/05/2010

Khi ng XAMPP Control Panel : Start >> All Programs >> XAMPP for Windows >> XAMPP Control Panel

Ca s sau hin th :

1. Click Start

Kt qu nh sau c ngha l H qun tr MySQL c khi ng v sn sng s dng. Sau y ta s m trang cu hnh MySQL to CSDL.

2. Click Apache

3. Click Apache

FIT-HCMUS

Trang 23

Spring MVC Framwork Bo co tm hiu


Trang sau c hin th :
4. Nhp tn CSDL mun to

Phin bn: 3.0 Ngy: 15/05/2010

6. Chn li l utf8_unicode_ci

5. Chn li l utf8_unicode_ci

Nh sau :
7. Click Create

Kt qu ta to thnh cng CSDL mi vi tn l mobiledb :

FIT-HCMUS

Trang 24

Spring MVC Framwork Bo co tm hiu


-

Phin bn: 3.0 Ngy: 15/05/2010

Gi ta to 2 bng DanhMuc (MaDM, TenDM) v SanPham(MaSP, TenSP, SoLuong, DonGia, MaDM) :


8. Click Go to create

K tip ta in cc thng tin thuc tnh ca bng nh sau :

9. Fill it

10. Chn l InnoDB mi c th thc hin to kho ngoi 11. Click Save

Kt qu nh sau nu to thnh cng :

FIT-HCMUS

Trang 25

Spring MVC Framwork Bo co tm hiu


Tng t cho bng SanPham :

Phin bn: 3.0 Ngy: 15/05/2010

Gi ta c 2 bng ta cn lin kt kho ngoi t thuc tnh SanPham.MaDM tham chiu n DanhMuc.MaDM Ti trang ca bng SanPham :
12. Click here to index cho thuc tnh ny 13. Click Relation view

14. Thit lp cc thuc tnh cho kho ngoi nh sau

15. Click Save

Vy l ta to kho ngoi thnh cng t SanPham.MaDM tham chiu n DanhMuc.MaDM.

FIT-HCMUS

Trang 26

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

xem lc CSDL thy quan h ny ta click vo link Database : mobiledb v trang qun l Database :
14. Click here

14. Click Designer

15. Click here xem thng tin thuc tnh

FIT-HCMUS

Trang 27

Spring MVC Framwork Bo co tm hiu


3.2.2 To Project p dng Spring Framework v Hibernate M NetBean IDE. To Project
1. File > New Project

Phin bn: 3.0 Ngy: 15/05/2010

3. Click Web Application 2. Click Java Web

4. Click Next

5. Fill them

6. Click Next

FIT-HCMUS

Trang 28

Spring MVC Framwork Bo co tm hiu


7. Select Web Server

Phin bn: 3.0 Ngy: 15/05/2010

8. Click Next

8. Check Spring Web MVC 2.5 and Hibernate 3.2.5

9. Select New Database Connection

FIT-HCMUS

Trang 29

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

10. Nhp cc thng tin v connection nh sau

11. Click OK

12. Click Finish

FIT-HCMUS

Trang 30

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Project c to

Cc th vin c include s dng

FIT-HCMUS

Trang 31

Spring MVC Framwork Bo co tm hiu


3.2.3 Pht sinh cc mapping file v pojos tng ng cho Hibernate To file Hibernate Reverse Engineering Wizard :

Phin bn: 3.0 Ngy: 15/05/2010

1. Right Click

2. Select Other

4. Select Hibernate Reverse Engineering Wizard

3. Select Hibernate

5. Click Next

FIT-HCMUS

Trang 32

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

6. Click Next

7. Nhp password nu c (b trng do lc to CSDL khng to password)

8. Click OK

FIT-HCMUS

Trang 33

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

9. Select cc Tables mun pht sinh t ng

10. Click Add

11. Click Finish

FIT-HCMUS

Trang 34

Spring MVC Framwork Bo co tm hiu


Pht sinh cc file pojo v hibernate mapping.

Phin bn: 3.0 Ngy: 15/05/2010

1. Right Click

2. Select Other

4. Select it 3. Click Hibernate

5. Click Next

6. Check : xml mapping Uncheck : to anotation mapping

7. Nhp tn package cha cc files c pht sinh

8. Click Finish

FIT-HCMUS

Trang 35

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

9. Nn kim tra li m bo mapping ng

File mapping cho DanhMuc

10. Thm attributes cn thit

File mapping cho SanPham

11. Thm attributes cn thit

FIT-HCMUS

Trang 36

Spring MVC Framwork Bo co tm hiu


To lp HibernateUtil qun l session cho Hibernate.

Phin bn: 3.0 Ngy: 15/05/2010

1. Right Click

2. Select Other

4. Select it 3. Click Hibernate

5. Click Next

6. Nhp Class name

7. Nhp Package name

8. Click Finish

FIT-HCMUS

Trang 37

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Ni dung file ny :

9. Do ta s dng XML mapping nn i AnnotationConfiguration thnh Configuration

9. Do ta s dng XML mapping nn i AnnotationConfiguration thnh Configuration

Vy l ta pht sinh xong cc lp cn thit thao tc vi Hibernate.

FIT-HCMUS

Trang 38

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

3.2.4 Tao cc lp DAO v BUS Cc lp DAO : DanhmucDAO, SanphamDAO s dng Hibernate truy xut d liu t CSDL. Cc lp BUS : DanhmucBUS, SanphamBUS chnh l cc Service cung cp x l nghip v s c s dng bi cc Control trn tng presentation theo SpringMVC framework. To cc packages v files sau :

Vi cc chc nng cn ci t, trong DanhmucDAO ta ch cn ci t 2 phng thc l saveDanhMuc v listDanhMuc nh sau :

M session

Bt u Transaction Save i tng v ly v ID ca i tng mi thm Hon tt Transaction Nu c li th rollback ng session

FIT-HCMUS

Trang 39

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

M session Bt u Transaction To v thc thi truy vn

Ly danh sch i tng

Hon tt Transaction

Nu c li th rollback ng session

Tng t ta ci t 2 phng thc saveSanPham v listSanPham nh sau :

FIT-HCMUS

Trang 40

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Lp SanphamBUS nh sau :

FIT-HCMUS

Trang 41

Spring MVC Framwork Bo co tm hiu


Lp DanhmucBUS nh sau :

Phin bn: 3.0 Ngy: 15/05/2010

3.2.5

To Controller cho chc nng thm sn phm mi :

1. Right Click

2. Select Other

FIT-HCMUS

Trang 42

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

4. Select Simple Form Controller 3. Select Spring Framework

5. Click Next

6. Nhp Class Name

7. Nhp Package

8. Click Finish

FIT-HCMUS

Trang 43

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Edit li constructor ca class nh sau :


Khai bo lp c dng ly command v t FormView x l khi submit Tn command, tn ny s c dng kt buc cc thuc tnh ca CommandClass vi cc control input ly d liu t tn ca View s hin th khi submit thnh cng

t tn ca View s hin th trc khi submit

Thm 2 thuc tnh kiu DanhmucBUS v SanphamBUS ng vai tr l 2 services lp Controller ny s dng x l cc nghip v trong qu trnh x l :

FIT-HCMUS

Trang 44

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Override li phng thc showForm add mt danh sch cc Danh mc cho ngi dng chn khi nhp loi sn phm. Phng thc ny c gi khi form c hin th ban u.
Lu li i tng ModelAndView tr v t cc lp cha

Ly danh sch danh mc Add thm i tng danh sch danh mc vo ModelAndView kt qu Tr v

Xo phng thc doSubmitAction c ci t sn. B comment v edit li phng thc onSubmit nh sau :

To ModelAndView s tr v khi submit thnh cng p kiu command thnh Sanpham ly kt qu c commit

Lu sn phm mi vo CSDL

Tr v a i tng sn phm mi nhp thnh cng cho viewSuccess hin th

Ly m Danh mc c chn, sau to v set thuc tnh danh mc cho sn phm c nhp. Ti sao li phi ly ring nh vy s c gii thch phn sau

FIT-HCMUS

Trang 45

Spring MVC Framwork Bo co tm hiu


3.2.6 To Views : Ta s to 2 Views sau : View nhp thng tin ca sn phm mi :

Phin bn: 3.0 Ngy: 15/05/2010

Danh sch danh mc hin c trong CSDL

View hin th thng tin sn phm mi nhp nu nhp thnh cng :

Nhn vo mt i tng sanpham v hin th gi tr cc thuc tnh

Ta to 3 file sau :

FIT-HCMUS

Trang 46

Spring MVC Framwork Bo co tm hiu


File include.jsp load cc th vin tag cn dng

Phin bn: 3.0 Ngy: 15/05/2010

File ThemSanPham_SuccessView.jsp hin th kt qu nu commit thnh cng

sanpham l object c truyn vo trong cu lnh mv.AddObject(sanpham, sp); trong phng thc onSubmit ca ThemSanPhamController

File ThemSanPham_InputView.jsp

Hm javascript x l cc textbox ch nhp s

FIT-HCMUS

Trang 47

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010


Ch nh commandName ca object lu d liu s c commit Bind thuc tnh ca lp Command vi gi tr s c nhp vo input

Tag h tr bi Spring Form

ID ca control select trong form

Vng lp add cc phn t ca danh sch danh mc c trong CSDL vo select control

lstDM l object c truyn vo trong cu lnh mv.AddObject(lstDM, lst); trong phng thc showForm ca ThemSanPhamController

Ghi ch : Tr li cu hi ti sao phi gi phng thc request.getParameter trong phng thc onSubmit ly gi tr m danh mc c chn bi ngi dng to v gn thuc tnh Sanpham.danhmuc ch khng ly sn trong Object command. Do tag select cung cp bi Spring Form khi tr v s tr v gi tr kiu String ca mc c chn, nn ta khng th kt buc gi tr ca control ny vi thuc tnh Sanpham.danhmuc kiu class Danhmuc c. Do ta phi submit ring l gi tr m danh mc c chn bi ngi dng v s x l request ly, sau to v set thuc tnh Sanpham.danhmuc kiu Danhmuc trong hm onSubmit.

FIT-HCMUS

Trang 48

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

3.2.7 Config Controller : u tin ta khai bo cc service s c s dng trong file applicationContext.xml

Thm 2 dng sau vo trong file ny :

Khai bo 1 Bean c id l sanphamService

Khai bo 1 Bean thuc class bus.SanphamBUS

FIT-HCMUS

Trang 49

Spring MVC Framwork Bo co tm hiu


Trong file dispatcher-servlet.xml

Phin bn: 3.0 Ngy: 15/05/2010

Thm bean ny vo trong thn bean gc. y l bean khai bo cho ThemSanPhamController ca chng ta.

Gn 2 services khai bo trn cho 2 thuc tnh ca class ThemSanPhamContrroler l sanphamBUS v danhmucBUS

Ta thm dng mapping sau map ThemSanPhamController ca chng ta vi url ThemSanPham.htm :

Map vi name ca Bean khai bo cho Controller ca chng ta trn.

Cui cng ta vo file redirect.jsp v sa index.htm thnh ThemSanPham.htm

FIT-HCMUS

Trang 50

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Vy l ta cu hnh xong cho phn Spring MVC Framework x l phn giao din. By gi ta c th build v run chng trnh. Nu thnh cng kt qu s nh sau :

Nhp thng tin :

Click OK ta c kt qu nh sau :

c mt im c bit khi s dng Spring MVC Framework l ch url. Cho d tht s trong ng dng ta c 2 file jsp. Nhng url lun l url m c map vi controller tng ng :

iu ny gip che du c nn cng ngh bn di v tnh an ninh hn v framework h tr qun l trang thnh vic truy cp trc tip vo url ca trang tri php. y cng l mt u im ca Spring MVC Framework. Phn k tip ta s bn v vic Validation d liu nhp ca ngi dng s dng Spring MVC Framework.

FIT-HCMUS

Trang 51

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

3.2.8 To Validation : Validator dng kim tra tnh hp l ca input t ngi dng. ci t cc input ny ta lm nh sau :

1. Right Click

2. Select Other

3. Nhp File Name

4. Nhp Folder l classes

5. Click Next

FIT-HCMUS

Trang 52

Spring MVC Framwork Bo co tm hiu


Trong file ny to cc properties sau :

Phin bn: 3.0 Ngy: 15/05/2010

Trong file dispatcher-servlet.xml khai bo thm bean sau :

To mt class mi :

9. Nhp Class Name

10. Nhp Package

11. Click Finish

FIT-HCMUS

Trang 53

Spring MVC Framwork Bo co tm hiu


Ni dung class ThemSanPhamValidator nh sau :

Phin bn: 3.0 Ngy: 15/05/2010

Implement Validator

Override li phng thc supports Nu type l class Sanpham th support

Override li phng thc validate x l vic input validate

Nu l ch c khong trng hoc khng nhp g th bo li

Xut li ti tag form:errors vi path = tenSp v xut chui thng bo lu trong thuc tnh TenSP.required trong messages.properties

y l phng thc yu cu loi b kt qu v thng bo li. Cc tham s nh m t trn

Trong file ThemSanPham_InputView.jsp : Thm nh ngha css sau :

FIT-HCMUS

Trang 54

Spring MVC Framwork Bo co tm hiu


-

Phin bn: 3.0 Ngy: 15/05/2010

Add cc tag form:errors : Tag ny dng hin th thng bo li nu c.

Trong file applicationContext.xml thm dng khai bo cho validator mi ci t.

Trong file dispatcher-servlet.xml gn thm thuc tnh validator cho controller :

Vy l xong. Gi build v run ng dng v kt qu khng hp l v nhn OK. Ta c kt qu nh sau

FIT-HCMUS

Trang 55

Spring MVC Framwork Bo co tm hiu

Phin bn: 3.0 Ngy: 15/05/2010

Cc u im v khuyt im ca Spring MVC Web Framework :

4.1 u im :
Spring l mt framework Java mnh m c s dng trong nhng ng dng Java c phm vi ln. N cung cp nhng dch v Enterprise n nhng Plain Old Java Objects (POJOs). C ch IoC gip ng dng t c s n gin ho v tng kh nng kim tra li. Spring MVC cung cp mt s phn chia rt r rng, rnh mch gia nhng Controller, Java Bean models v Views. Spring MVC rt linh hot, ton b Spring MVC c xy dng da trn nhng interfaces. Mi phn ca Spring MVC framework c cu hnh thng qua vic lp ghp nhng interface, class tin ch sn c, v thm ch c to bi ngi dng. Spring khng ch s dng cng ngh JSP m cn c th d dng tch hp cc cng ngh view khc nh Velocity, XSLT, FreeMarker, XL, Cung cp c ch che du nn cng ngh bn di, trang web khi hin th ch c extension l .htm, khng th bit c bn di ta s dng cng ngh, k thut g, JSP hay Velocity, XLST, thm ch l l nhng cng ngh view c custom bi ngi dng. Spring Controller c cu hnh thng qua IoC nh mi i tng khc. iu ny lm chng d dng c test, v c tch hp d dng vi nhng i tng khc c qun l bi Spring. Kt buc trc tip cc input t view vi nhng i tng domains.

4.2 Khuyt im :
Cu hnh phc tp v cng knh => khng pht huy c sc mnh khi p dng cho cc ng dng quy m nh m c th ngc li cn lm cho ng dng phc tp.

Ti liu tham kho :

http://www.vaannila.com/spring/spring-tutorial/spring-tutorial.html http://en.wikipedia.org/wiki/Spring_Framework http://netbeans.org/kb/docs/web/quickstart-webapps-spring.html http://sites.google.com/site/springmvcnetbeans/step-by-step/ http://forum.springsource.org/showthread.php?t=16553

FIT-HCMUS

Trang 56

You might also like