Với sự ra đời của RoR, Java cũng có một framework tương tự dựa trên Groovy script giúp lập trình viên Java viết web thật đơn giản & tiết kiệm thời gian trong khi vẫn vận dụng được toàn bộ sức mạnh từ Java.
Giới thiệu chút ít về Grails
RoR = Ruby on Rails +=+ Groovy on Rails = Grails
Groovy = script language for Java
1. Cài đặt:
Vì Grails là một web framework cho Java nên cần cài đặt JDK trước vào máy tính. Download tại : +a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank"+http://java.sun.com/javase/downloads/index.jsp+/a+
Download Grails tại : +a href="http://grails.org/Download" target="_blank"+http://grails.org/Download+/a+
Unzip, đặt biến môi trường GRAILS_HOME đến thư mục chứa Grails , đặt đường dẫn GRAILS_HOME/bin vào biến hệ thống (Path)
Vậy là cài đặt xong!
2. Tạo một ứng dụng web với Grails :
Mở command line, gõ vào : grails create-app , enter project name "test" , lệnh này tạo ra một ứng dụng web ngay tại thư mục hiện hành, cấu trúc thư mục này như sau :
%PROJECT_HOME%
+ grails-app
+ conf ---+ location of configuration artifacts like data sources
+ controllers ---+ location of controller artifacts
+ domain ---+ location of domain classes
+ i18n ---+ location of message bundles for i18n
+ services ---+ location of services
+ taglib ---+ location of tag libraries
+ util ---+ location of special utility classes (e.g., codecs, etc.)
+ views ---+ location of views
+ layouts ---+ location of layouts
+ hibernate ---+ optional hibernate config
+ lib
+ spring ---+ optional spring config
+ src
+ groovy ---+ optional; location for Groovy source files
(of types other than those in grails-app/*)
+ java ---+ optional; location for Java source files
+ war
+ WEB-INF
Để test thử, vào thư mục "test" vừa được tạo, gõ tiếp lệnh : grails run-app, sau đó mở Browser : localhost:8080/test , sẽ hiện ra màn hình Welcome của Grails ! Vậy là đã tạo xong một ứng dụng web, thật đơn giản với Grails !
+img src="http://i75.photobucket.com/albums/i290/cndkhuong/th_console.gif" border="0" /+
Màn hình command line khi chạy Grails
+img src="http://i75.photobucket.com/albums/i290/cndkhuong/th_welcome.gif" border="0" /+
Kết quả khi view trong browser
3.Tạo một Controller :
Bắt đầu bằng command : grails create-controller, sau đó enter name = login, sau khi hoàn tất, ta sẽ có file LoginController.groovy trong thu mục test/grails-app/controller. Nếu run ứng dụng bằng grails run-app tại thời điểm này, ta sẽ thấy trong trang Welcome có một link đến LoginController vừa mới tạo
+img src="http://i75.photobucket.com/albums/i290/cndkhuong/th_action.gif" border="0" /+
Click link này sẽ dẫn đến một error không tìm được file index.jsp trong thư mục views . Mặc định Grails sẽ tạo một default action index rỗng trong mỗi controller vừa tạo ra và Grails cố tìm kiếm một file index.gsp (Groovy Server Page) tương ứng trong thư mục views. Để khắc phục error này, chúng ta chỉnh sửa file LoginController.groovy như sau :
class LoginController {
def defaultAction = 'login'
def login = {}
}
Đồng thời tạo một file tên login.gsp trong thư mục views/login với nội dung tạo một form login như sau :
+html+
+title+ Login Form +/title+
+body+
+form action="./login/loginAction"+
+table+
+tr+
+td colspan="2" align="CENTER" bgcolor="YELLOW"+Logon+/td+
+/tr+
+tr+
+td+Username : +/td+
+td++input type="text" name="txtUser"++/td+
+/tr+
+tr+
+td+Password : +/td+
+td++input type="password" name="pwdPass"++/td+
+/tr+
+tr+
+td colspan="2" align="CENTER"++input type="submit" value="Login"++/td+
+/tr+
+/table+
+/form+
+/body+
+/html+
+img src="http://i75.photobucket.com/albums/i290/cndkhuong/th_login.gif" border="0" /+
4.Giao tiếp Database
Grails sử dụng Hibernate kết nối Database, nhưng việc sử dụng rất đơn giản. Bây giờ cần xác định cần kết nối với Database nào, ở đây để đơn giản, chúng ta sử dụng Apache Derby (đã được tích hợp sẵn trong JDK 6). Đầu tiên copy file derby.jar đến thư mục lib của ứng dụng (tương tự copy file driver của các Database khác vào đây!). Sau đó định nghĩa lại Datasource trong test/grails-app/conf/DevelopmentDataSource.groovy
class DevelopmentDataSource {
boolean pooling = true
String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
String url = "jdbc:derby:testdb;create=true"
String driverClassName = "org.apache.derby.jdbc.EmbeddedDriver"
String username = ""
String password = ""
}
Chú ý là Grails cấu hình datasource riêng cho develop, test & product tương ứng với tên file trong thư mục conf.
Giả sử cần tạo một table tên là TUSER phục vụ cho việc login , từ command line , tại thư mục test, gõ lệnh : grails create-domain-class, enter tên class là TUSER. Sau khi hoàn tất ta có file TUSER.groovy trong thư mục test/grails-app/domain, table này cần 2 field là username & password, chúng ta edit file TUSER.groovy như sau :
class TUSER {
String username
String password
}
Mặc định Grails tự động thêm primary key (+version field) cho mỗi table.
Để đơn giản hơn, chúng ta sẽ tự động insert một default user vào table, làm việc này bằng cách edit file test/grails-app/conf/ApplicationBootStrap.groovy
class ApplicationBootStrap {
def init = { servletContext -+
new TUSER(username:'cndkhuong', password:'cndkhuong').save()
}
def destroy = {
}
}
Như đã thấy trong login.gsp, ta cần tạo một actionLogin để xử lý việc này, thêm vào file LoginController.groovy
def login = {
}
def loginAction = {
def user = TUSER.findWhere(username:params['txtUser'], password:params['pwdPass'])
if(user) {
redirect(action:'success', params:params)
}
else
redirect(action:'failure', params:params)
}
def success = {render “Welcome ${params.txtUser}”}
def failure = {render “${params.txtUser} login failed!”}
Mã nguồn này chỉ select tương ứng username & password trong form từ table TUSER, nếu user tồn tại thì xuất ra câu welcome, ngược lại là login failed. Vì chúng ta đã insert tự động một dòng trong TUSER ngay khi chạy, nên ta có thể login bằng user này
+img src="http://i75.photobucket.com/albums/i290/cndkhuong/th_success.gif" border="0" /+
Chú ý redirect trên bao gồm luôn cả các param từ form, ngoài redirect, ta có thể sử dụng chain để chuyển toàn bộ đối tượng model... đọc thêm trên trang +a href="http://grails.org/" target="_blank"+http://grails.org/+/a+
Để deploy , ta sẽ dùng lệnh : grails war để tạo file *.war, copy file này lên thư mục webapps của Java webserver như Tomcat.
Trên đây là một bài giới thiệu nhỏ về Grails , có gì sai sót mong mọi người góp ý. Với việc sử dụng Grails, việc viết web sẽ dễ dàng hơn rất nhiều, đồng thời tận dụng được hoàn toàn sức mạnh của Java!
+a href="http://download.yousendit.com/B72D033D515EA4C2" target="_blank"+http://download.yousendit.com/B72D033D515EA4C2+/a+
Tài liệu đủ để các bạn viết một ứng dụng với Grails ! Groovy script khá dễ viết đối với lập trình viên Java, hơn nữa bạn có thể viết = Java, hoàn toàn sử dụng bình thường trong Grails !
Nếu muốn tìm hiểu thêm về Groovy script, quyển sách sau sẽ giúp bạn : +a href="http://download.yousendit.com/5288B29E0DE9627E" target="_blank"+http://download.yousendit.com/5288B29E0DE9627E+/a+
Chúc các bạn viết web với Grails thành công !
P.S : Grails có hỗ trợ để phát triển ứng dụng trên Eclipse rất dễ dàng ! Xem thêm trong ebook 1
No comments:
Post a Comment