Tạo ứng dụng CRUD với grails (Phần 1)
Groovy trên Grails là WEB development framework MVC dựa trên ngôn ngữ Groovy. Groovy dựa trên Java, nó cũng chạy trên JVM - Java Virtual Machine.
Nó hỗ trợ nhiều cho developer java web. Giúp dev phát triển web một cách nhanh nhất có thể.
Trong bài viết này chúng ta sẽ cùng tìm hiểu về các tạo ứng dụng đơn giản có các thao tác CRUD với grails framework.
Bước 1: Cài đặt và tạo app
Cài đặt:
Download tại trang:
http://grails.org/download.html
Hướng dẫn cài đặt
http://docs.grails.org/latest/guide/gettingStarted.html
Tạo ứng dụng bằng cách mở cmd và chạy lệnh:
grails create-app contact-list
Một project được tạo tại thư mục đang làm việc như trong ảnh dưới đây:
Sau đó bạn có thể dùng intelij để import và mở project lên như hình dưới đây:
Lần đầu build khá là lâu, nhưng từ lần sau sẽ nhanh hơn nhiều. Grails dùng gradle để build app. ^^
Nhấn vào nút tam giác màu xanh phía trên bên phải của Intelij app của bạn sẽ được chạy và sẽ có log như thế này được in ra:
Grails application running at http://localhost:8080 in environment: development
Và trình duyệt mặc định sẽ được tự động mở ra như thế này:
Bước 2: Tạo domain, controller, view
Tạo domain
Tiếp theo tạo domain bằng lệnh dưới đây:
grails create-domain-class org.Contact
Link tham khảo
Kết quả sẽ ra như sau:
Thêm một ít thuộc tính
class Contact {
String name
String phoneNumber
}
Thêm contrains để thuộc tính not null
class Contact {
String name
String phoneNumber
static constraints = {
name nullable: false
phoneNumber nullable: false
}
}
Tạo controller
Bạn dùng lệnh sau để tạo controller
grails create-controller org.contact
Tạo các action cho controller
class ContactController {
def index = {}
def create = {}
def save = {}
def edit = {}
def update = {}
def show = {}
def list = {}
def delete = {}
}
Trong phần 2 chúng ta sẽ làm đủ các chức năng CRUD, còn hiện tại trong phần 1 này chúng ta sẽ dừng ở mức khởi tạo một vài giá trị ban đầu qua bootStrap và hiển thị list đó lên.
Do đó chúng ta sẽ implement ham list trước:
Hàm list
Contact.list() lấy tất cả các dữ liệu trong domail contact để hiện thị ngoài màn hình.
def list = {
def contacts = Contact.list()
[contacts: contacts]
}
Hàm index
Đây là main action của một controller, chúng ta sẽ chuyển hướng tới màn list để xem thông tin danh sách.
def list = {
def contacts = Contact.list()
[contacts: contacts]
}
tạo dữ liệu ban đầu cho ứng dụng
Bạn có thể vào grails-app/init/contact.list/BootStrap để tạo dữ liệu ban đầu cho ứng dụng.
Để ví dụ mình sẽ tạo một vài default contact như sau:
def init = { servletContext ->
for (int i = 1; i <= 2; i++) {
def newContact = new Contact(name: "contact_" + i, phoneNumber: "12345" + i)
newContact.save()
}
}
Tạo view
Bạn vào thư mục grails-app/views/contact/ tạo file list.gsp với nội dung như sau:
Nhìn vào code bạn sẽ thấy khá dễ hiểu mặc dù bạn chưa quen với gsp. ^^
<html>
<head>
<title>List contacts</title>
</head>
<body>
<h1>List contacts</h1>
<g:each in="${contacts}" var="contact">
Name: ${contact.name}<br />
Phone Number: ${contact.phoneNumber}<br />
<g:link action="edit"
id="${contact.id}">Edit</g:link><br />
<g:link action="delete"
id="${contact.id}">Delete</g:link><br /><br />
</g:each>
<g:link action="create">Create new contact</g:link>
</body>
</html>
Grails run-app
Và bây giờ để chạy app grails, bạn chạy câu lệnh
grais run-app
(hoặc ấn nút run app hình tam giác màu xanh là cây) và chúng ta chờ kết quả hiện ra màn hình localhost: http://localhost:8080/
Nhập đường dẫn: "http://localhost:8080/contact/list" hoặc click vào link trên màn hình localhost ta sẽ vào màn hình "List contacts"
Kết quả sẽ hiển thị ra như sau:
Kết luận
Như bạn thấy, chỉ bằng vài thao tác đơn giản, bạn đã tạo được ứng dụng đầu tiên với grails.
Trong phần tiếp theo chúng ta sẽ implement các hàm còn lại để bạn làm quen hơn nữa với việc thao tác với grails bạn nhé.