Ví dụ đơn giản hoạt động của Portlet

Một phần của tài liệu Hướng dẫn cài đặt Liferay 6.2 (Trang 32 - 37)

Ta tạo một project mới có tên là SendDataProject, sau khi tạo xong, tạo một portlet mơi scó tên là SendDataPortlet . Tạo Portlet mới với các thông tin sau:

− Portlet class: SendDataPortlet − Java package: com.liferay.tutorial

− Supperclass: com.liferay.util.bridges.mvc.MVCPortlet

Xem lại các bước tạo Portlet được hướng dẫn trong phần 3.1 Tạo Portlet trong

Liferay IDE

Sau khi tạo Portlet ta thêm Portlet vào máy chủ và chạy. Nội dung hiển thị sẽ là nội dung nằm trong file docroot\html\senddata\view.jsp

Sửa nội dung của file view.jsp thêm vào một link mở ra giao diện để có thể nhập vào một chuỗi (tên). Thêm vào file view 4 dòng sau:

− Thẻ <portlet:renderURL>: Thẻ này sẽ sinh ra một URL và gán vào biến editURL. URL này có dạng render dùng trong các trường hợp mở liên kết mới ngược lại với dạng action thực hiện một thao tác nào đó (thêm, sửa, xóa...) − Thẻ <portlet:param>: thêm tham số vào URL ở trên, ta có thể hiểu như sau:

giả sử render URL có dạng là: http://abc.xyz thì sẽ sinh ra một URL có dạng http://abc.xyz?mvcPath=/html/second/edit.jsp. Thuộc tính name có thể đặt bất kỳ, tuy nhiên nên đặt có ý nghĩa. Thuộc tính value là đường dẫn đầy đủ tính từ docroot đến file jsp cần thiết.

− Thẻ <a>: Chú ý trong thuộc tính href, ta thấy có lệnh <%= editURL%>. editURL là biến của thẻ renderURL, ký hiệu <%=%> là một chỉ thị của JSP được dùng để in ra giá trị của biến edit.

Sau khi deploy lên server, portlet hiển thị như sau:

Giao diện 21. Ví dụ Portlet – Giao diện hiển thị file view

Click vào Enter Name link sẽ render đến trang edit.jsp

− <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %> đây là thư viên aui do nhóm Liferay viết lại.

− <portlet:defineObjects />: cũng tương tự như trong file view.jsp dùng để định nghĩa các biến toàn cục trong file.

− <portlet:actionURL var="editURL"></portlet:actionURL> sẽ định nghĩa một URL dạng action. Tức là dạng URL cho việc cập nhật, xóa, thêm và các thao tác khác.

− <aui:form action="<%= editURL %>" method="post"> đây chính là thẻ form dùng để cập nhật dữ liệu. Thuộc tính action chính là URL, method="post" là phương thức cập nhật dữ liệu (tương tự trong form HTML thông thường) − <aui:input label="name" name="name" type="text" value="" /> là một textbox

cho phép nhập vào một chuỗi. Thuộc tính name ở đây được sử dụng để lấy giá trị trương ứng đã nhập vào.

− <aui:button type="submit" /> tạo nút để chuyển nội dung form xuống dưới controller.

Sau khi chỉnh sửa file edit.jsp hiển thị như sau:

Nhập vào một cái tên và nhấn vào nút Submit. Chúng ta cần phải bắt được nội dung trên form gửi xuống controller, sau đó, từ controller ta sẽ gửi lại màn hình view.

Để bắt nội dung được giử từ máy trạm xuống máy chủ. Mở file java là controller của portlet là SendDataPorlet.java và nhập nội dung như sau:

− Phương thức processAction được override từ phương thức tương ứng của lớp cha. Phương thức này sẽ xử lý bất hành động gửi dữ liệu từ máy cá nhân xuống máy chủ trong portlet này. Phương thức này có hai tham số là actionRequest sẽ chứa các thông tin được gửi từ máy khách xuống (bao gồm cả các dữ liệu trong form) và actionResponse sẽ chứa các dữ liệu được xử lý và gửi lên trả lại.

− String name = ParamUtil.getString(actionRequest, "name"); có tác dụng lấy dữ liệu từ máy khách gửi xuống, ở đây form có một trường input có tên là "name" nên ta sẽ đọc nội dung từ actionRequest bằng hàm tiện ích ParamUtil. − Các dòng tiếp theo sẽ xử lý dữ liệu. Trong trường hợp không gửi xuống gì cả

thì trả về thông điệp là "Hello World" còn trường hợp gửi xuống một cái tên thì sẽ gửi lại lời chào.

− Dòng actionResponse.setRenderParameter("message", message); có tác dụng thêm vào luồng dữ liệu trả lại một giá trị có tên là "message" và có giá trị đã xử lý.

− Cuối cùng ta gọi phương thức của lớp cha.

Sửa lại file view.jsp như sau để hiển thị dữ liệu được trả về từ controller

− String message = ParamUtil.getString(renderRequest, "message"); lấy dữ liệu trả lại từ controller, lưu ý là dòng này năm trong chỉ thị <% %>.

− <%= message %> có tác dụng in nội dung của biến message ra HTML. Kiểm tra hoạt động của portlet

Giao diện 22. Ví dụ Portlet – Giao diện hiển thị file view cho phép nhập tên

Nhập vào tên và nhấn Save portlet sẽ hiển thị Hello + name

Một phần của tài liệu Hướng dẫn cài đặt Liferay 6.2 (Trang 32 - 37)

Tải bản đầy đủ (DOCX)

(39 trang)
w