1. Trang chủ
  2. » Công Nghệ Thông Tin

Tai lieu huong dan viet portlet don gian tren liferay

44 114 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 0,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hướng dẫn viết portlet feedback đơn giản trên Liferay sử dụng Liferay IDE, sử dụng các công nghệ JSF (JavaServer Faces): là một framework dùng để phát triển các ứng dụng web bằng Java. Liferay hỗ trợ phát triển portlet bằng JSF. Hibernate: là một ORM (Object Relational Mapping) framework của Java, dùng để hỗ trợ việc truy xuất database.

Trang 1

HƯỚNG DẪN TẠO PORTLET ĐƠN GIẢN TRÊN

LIFERAY

I Mục tiêu

Hướng dẫn viết portlet feedback đơn giản trên Liferay sử dụng Liferay IDE

II Công nghệ sử dụng

 JSF (JavaServer Faces): là một framework dùng để phát triển các ứng dụng web

bằng Java Liferay hỗ trợ phát triển portlet bằng JSF

 Hibernate: là một ORM (Object Relational Mapping) framework của Java, dùng để

hỗ trợ việc truy xuất database

Trang 2

MỤC LỤC

HƯỚNG DẪN TẠO PORTLET ĐƠN GIẢN TRÊN LIFERAY 1

I Mục tiêu 1

II Công nghệ sử dụng 1

MỤC LỤC 2

PHẦN 1: CHUẨN BỊ MÔI TRƯỜNG 4

I Chuẩn bị 4

II Cấu hình Liferay Portal 5

III Cấu hình Liferay IDE 6

1 Cấu hình JRE 6

2 Cài đặt Liferay Plugin SDK 7

3 Cài đặt Liferay Server 9

PHẦN 2: TẠO FEEDBACK PORTLET 13

I Mục tiêu 13

II Tạo database 13

III Tạo mới Liferay Portlet Project 16

IV Thêm thư viện hibernate vào project 18

V Tạo Java Object cho bảng feedback 19

VI Tạo tập tin cấu hình cho Hibernate 21

VII Tạo lớp hỗ trợ cho Hibernate 22

VIII Tạo lớp DataProvider 23

IX Tạo portlet thêm mới feedback 24

1 Tạo Managed Bean 24

2 Tạo giao diện 25

Trang 3

1 Tạo Managed Bean 32

2 Tạo giao diện 33

3 Khai báo thông tin portlet 35

4 Deploy portlet 36

XI Cấu trúc project sau khi hoàn thành 38

Trang 4

PHẦN 1: CHUẨN BỊ MÔI TRƯỜNG

I Chuẩn bị

 Phần cứng: tối thiểu 1GB Ram

 Liferay portal 6.0 Community Edition Bundled with Tomcat (tham khảo tài liệu Huong dan cai dat Liferay 6.0 voi Postgres 8)

 Liferay IDE 1.3.1 (là phiên bản eclipse 3.7 đã được cài đặt sẵn Liferay IDE) (địa chỉ tải về http://sourceforge.net/projects/lportal/files/Liferay%20IDE/1.3.1/)

 Liferay plugin SDK 6.1.0 b3 (SDK 6.1.0 trở lên mới hỗ trợ JSF 2 portlet) địa chỉ tải

về http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.1.0%20B3/)

Trang 5

 Thư viện JSF 2 (đã được kèm theo trong gói Liferay plugin SDK)

 Thư viện Hibernate 3.6 (địa chỉ tải về:

http://sourceforge.net/projects/hibernate/files/hibernate3/3.6.10.Final/)

II Cấu hình Liferay Portal

Ta sẽ chuyển Liferay portal sang chế độ Developer Chế độ Developer sẽ tối ưu Liferay cho việc phát triển portlet với những hỗ trợ sau:

 Tắt cache để bất cứ thay đổi nào cũng được cập nhật nhanh nhất có thể mà không cần khởi động lại Liferay

 Hiển thị nhiểu thông tin hơn khi có lỗi xảy ra

Trang 6

Để bật chế độ Developer trong Liferay 6, vào thư mục

C:\liferay-portal-6.0.6\tomcat-6.0.29\bin , mở tập tin setenv.bat Tìm đến dòng sets JAVA_OPTS thêm tùy chọn

Trang 7

Trong hộp thoại hiện ra, thêm đường dẫn đến jre của Liferay là

C:\liferay-portal-6.0.6\tomcat-6.0.29\jre1.6.0_20\win\bin vào mục Variable value (lưu ý dấu ‘;’)

Để kiểm tra, vào Start - Run, gõ cmd để vào Command Prompt Trong cửa sổ Command

Prompt, gõ java –version Hệ thống sẽ hiển thị phiên bản java nếu thiết đặt đúng

2 Cài đặt Liferay Plugin SDK

Giải nén gói Liferay IDE vào ổ thư mục thích hợp, ví dụ C:\.

Giải nén gói Liferay plugin SDK vào thư mục C:\eclipse\plugins của Liferay IDE

Trang 8

Vào thư mục C:\eclipse, chạy tập tin eclipse.exe để khởi động Liferay IDE.

Chọn menu Windows - Preferences

Trong hộp thoại Preferences, chọn Liferay - Installed SDKs, nhấn nút Add để thêm Liferay

plugin SDK

Chọn đến thư mục của Liferay plugin SDK

Trang 9

3 Cài đặt Liferay Server

Trong hộp thoại Preferences của Liferay IDE, chọn Server - Runtime Environments, nhấn

nút Add để thêm Server

Tìm đến mục Liferay, Inc chọn Liferay v6.0 CE (Tomcat 6).

Check vào tùy chọn Create a new local server để Liferay IDE tự động tạo một instance

Server dựa trên Runtime Server này Nhấn Next

Trang 10

Tìm đến thư mục tomcat của Liferay portal đã cài trước đó Nhấn Finish

Trang 11

Lúc này, trên giao diện chính của Liferay IDE sẽ xuất hiện instance server vừa tạo.

Để kiểm tra server vừa tạo, click chuột phải lên server chọn Start để khởi động Liferay portal

từ Liferay IDE

Nếu server khởi động thành công (server chuyển trạng thái sang Started), click chuột phải lên

Server chọn Open Liferay Portal

Trang chủ của Liferay sẽ hiển thị trong cửa sổ của Liferay IDE

Trang 13

PHẦN 2: TẠO FEEDBACK PORTLET

I Mục tiêu

Phần này sẽ hướng dẫn tạo 2 portlet:

 Thêm feedback: cho phép người dùng thêm mới một feedback

 Quản lý feedback: cho phép người dùng xem danh sách các feedback và thông tin chi tiết của một feedback

II Tạo database

Vào pgAdmin III, chọn LIFERAY_TEST - Schemas - public, click chuột phải lên Tables chọn New Table

Trong hộp thoại New table, chọn thẻ Properties, đặt tên cho table là feedback

Trang 14

Chọn thẻ Columns, nhấn nút Add để tiến hành thêm các cột như thông tin trong bảng dưới

đây:

chính

Not

2 fb_tieude character varying(200) x Tiêu đề

3 fb_nguoigoi_ten character varying(200) x Tên người gởi

4 fb_nguoigoi_email character varying(200) x Email người gởi

Chọn thẻ Constraints, chọn Primary nhấn nút Add để thêm khóa chính

Trang 15

Trong hộp thoại New Primary Key, trong thẻ Properties nhập tên cho primary key vào mục

Name

Chọn thẻ Columns, chọn cột fb_id nhấn nút Add để thêm fb_id vào làm khóa chính Nhấn

OK

Trang 16

Sau khi tạo xong khóa chính, nhấn OK trên hộp thoại New table để tạo bảng feedback

III Tạo mới Liferay Portlet Project

Vào menu File - New - Liferay Project

Trong hộp thoại New Liferay Project, đặt tên cho Project là feedback, chọn SDK và Liferay

runtime (vừa cấu hình ở trên) Chọn kiểu Plugin là Portlet Nhấn Next

Trang 17

Chọn JSF 2 làm framework phát triển portlet Nhấn Finish

Nếu Liferay IDE hiển thị thông báo đề nghị sử dụng Liferay perspective Chọn Yes

Project vừa tạo sẽ xuất hiện trong phần Package Explorer

Trang 18

IV Thêm thư viện hibernate vào project

Giải nén gói Hibernate, tìm và chép 8 tập tin sau vào thư mục lib của feedback portlet

Trang 19

V Tạo Java Object cho bảng feedback

Thêm package feedback vào project

Để sử dụng hibernate, ta vào docroot/WEB-INF/src/feedback, tạo class Feedback

(Feedback.java) để mapping với table feedback Hibernate sẽ tương tác với table feedback

thông qua class Feedback này

@Table (name = "feedback")

public class Feedback implements java.io.Serializable {

@Column (name="fb_id", unique=true, nullable=false)

private int fbId;

@Column (name="fb_tieude", nullable=false)

private String fbTieude;

@Column (name="fb_nguoigoi_ten", nullable=false)

private String fbNguoigoiTen;

@Column (name="fb_nguoigoi_email", nullable=false)

private String fbNguoigoiEmail;

@Column (name="fb_noidung", nullable=false)

Trang 20

public Feedback() {

}

public Feedback(int fbId, String fbTieude, String fbNguoigoiTen,

String fbNguoigoiEmail, String fbNoidung) { this.fbId = fbId;

Trang 21

 @Table: khai báo thông tin của table tương ứng trong database

o Name: tên bảng (feedback)

 @Id: cho biết thuộc tính đó tương ứng với cột là khóa chính trong table (fb_id)

 @SequenceGenerator: khai báo bộ sinh mã tự động (hibernate sẽ sinh mã tự động thông qua bộ sinh mã tự động của PostgreSQL)

o Name: tên bộ sinh mã tự động, ở đây ta đặt trùng với tên sequence tương ứng trong PostgreSQL

o sequenceName: tên sequence tương ứng trong PostgreSQL (feedback_fb_id_seq)

Để xem tên sequence do PostgreSQL tạo ra cho cột fb_id, trong pgAdmin III chọn

bảng feedback rồi chọn thẻ Dependents

o allocationSize: giá trị tăng của mã mới so với mã cũ (mặc định là 50)

 @GeneratedValue: khai báo bộ sinh mã tự động của hibernate sẽ được sử dụng đẻ sinh giá trị cho thuộc tính

o strategy: chiến thuật sinh mã, phụ thuộc vào database sử dụng, với PostgreSQL sẽ

là SEQUENCE

o generator: tên bộ sinh mã của Hibernate, chính là Name của @SequenceGenerator

VI Tạo tập tin cấu hình cho Hibernate

Trong thư mục docroot/WEB-INF/src, tạo ra tập tin hibernate.cfg.xml để chứa các tham số

cấu hình cho hibernate với nội dung sau:

<? xml version ="1.0" encoding ="UTF-8" ?>

<! DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate

Trang 22

ST </ property >

< property name ="hibernate.connection.username" > postgres </ property >

< property name ="hibernate.connection.password" > 1234567 </ property >

 connection.url=url đến database, có dạng: jdbc:postgresql://[ip_database _server]:

[port_của_postgresql]/[tên_database] (nếu database nằm ở máy cục bộ thì

ip_database _server có thể là 127.0.0.1 hoặc localhost)

o [ip_database_server]: nếu là database nằm ở máy cục bộ thì

ip_database_server có thể là 127.0.0.1 hoặc localhost

o [port_của_postgresql]: port mặc định của PostgreSQL là 5432

o [tên_database]: tên database, trong tài liệu này là LIFERAY_TEST

 connection.username=tên tài khoản đăng nhập vào PostgreSQL

 connection.password=mật khẩu đăng nhập vào PostgreSQL

 mapping class=đường dẫn đầy đủ đến class mapping với table trong database (ở đây

là class Feedback nằm trong feedback package)

VII Tạo lớp hỗ trợ cho Hibernate

Trong thư mục docroot/WEB-INF/src/feedback, tạo class HibernateUtil (HibernateUtil.java)

để hỗ trợ việc tạo session kết nối đến database cũng như thực hiện các câu truy vấn thông quahibernate

Trang 23

// Open a new Session, if this thread has none yet

if (s == null || s.isOpen() == false) {

// private static final SessionFactory sessionFactory;

public static SessionFactory getSessionFactory() {

return sessionFactory;

}

}

VIII Tạo lớp DataProvider

Trong thư mục docroot/WEB-INF/src/feedback, tạo class FeedbackDataProvider

(FeedbackDataProvider.java) để thực thi các truy vấn đến PostgreSQL

public void addFeedback(Feedback fb) {

Session session = HibernateUtil.currentSession();

public List<Feedback> getAllFeedback() {

List<Feedback> listFeedback = new ArrayList<Feedback>();

Session session = HibernateUtil.currentSession();

session.beginTransaction();

Trang 24

public Feedback getFeedbackById(int id) {

Session session = HibernateUtil.currentSession();

 save: thêm mới đối tượng (phương thức addFeedback(Feedback fb))

 update: cập nhật đối tượng

 get: lấy đối tượng theo khóa chính (phương thức getFeedbackByid(int id))

Ngoài ra, Session cũng hỗ trợ các câu truy vấn SQL thông qua đối tượng Query, trong đó các table, column trong database được thao tác thông qua lớp mapping tương ứng (lớp

Feedback)

IX Tạo portlet thêm mới feedback

1 Tạo Managed Bean

Trong thư mục docroot/WEB-INF/src/feedback, tạo class FeedbackThemBean

(FeedbackThemBean.java) để tạo Managed Bean Managed Bean là những lớp dùng để lưu trữ dữ liệu và có thể được truy cập từ JSF page (các trang html)

package feedback;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

Trang 25

private FeedbackDataProvider objFeedbackDataProvider;

private Feedback objFeedback;

private String thongTin;

public Feedback getObjFeedback() {

objFeedback = new Feedback();

thongTin = "Gởi ý kiến";

objFeedback = new Feedback();

thongTin = "Ý kiến của bạn đã được gởi đi";

}

}

Để khai báo một class là Managed Bean ta dùng chú giải @ManagedBean trước khai báo class Tiếp theo là chú giải cho biết phạm vi tồn tại của Managed Bean Portlet thêm feedbackchỉ gồm một trang html nên ta sử dụng @ViewScoped - phạm vi chỉ trong 1 trang

2 Tạo giao diện

Trong thư mục docroot/xhtml, tạo tập tin Feedback_Them.xhtml để tạo khai báo form thêm

Trang 26

required ="true" requiredMessage =" Vui lòng nhập họ

tên người gửi"

validatorMessage =" Vui lòng nhập họ tên người gửi"

Trang 27

validatorMessage =" Email không hợp lệ"

< td style =" text-align : left" class ="cssTdChuY" > Chú ý: ( < span

style =" color : red" * </ span > ) là bắt buộc nhập </ td >

<h:outputText value="#{FeedbackThemBean.thongTin}"></h:outputText>: hi n th giá ể ị

tr bi n thongTin c a Managed Bean FeedbackThemBean v i component ị ế ủ ớ

<h:outputText/>

Trang 28

JSF 2 cung cấp các thẻ (component) hỗ trợ cho việc hiển thị dữ liệu Để sử dụng các thẻ của JSF 2, ta khai báo 2 namespace sau vào đầu tập tin html.

xmlns:f ="http://java.sun.com/jsf/core"

xmlns:h ="http://java.sun.com/jsf/html"

Mỗi component sẽ có các thuộc tính tương ứng với nó

Ở form thêm feedback, ta sử dụng các thẻ <h:inputText/> để người dùng nhập liệu, và gắn với biến tương ứng trong FeedbackThemBean

< h:inputText id ="txtTieuDe" maxlength ="200"

value ="#{FeedbackThemBean.objFeedback.fbTieude}"

required ="true" requiredMessage =" Vui lòng nhập tiêu đề góp ý"

validatorMessage =" Vui lòng nhập tiêu đề góp ý"

<f:validateRegex /> với pattern là regex bắt khoảng trắng để kiểm tra dữ liệu nhập, thông báolỗi tương ứng được định nghĩa trong thuộc tính validatorMessage của thẻ <h:inputText/>

Để hiển thị các Message này, ta cần định nghĩa thẻ <h:message /> cho thẻ <h:inputText/> đó với thuộc tính for là id của thẻ cần hiển thị các Message:

< h:message for =" txtTieuDe" />

Để submit dữ liệu, ta dùng thẻ <h:commandButton/>

< h:commandButton id ="btnGui" value ="Gửi" title ="Gửi"

actionListener ="#{FeedbackThemBean.actionThemFeedback}" >

</ h:commandButton >

Để gọi hàm xử lý tương ứng trong Managed Bean khi submit dữ liệu, ta gọi nó thông qua thuộc tính actionListener của <h:commandButton />

3 Khai báo thông tin portlet

Trong một portlet project, ta có thể khai báo nhiều portlet Với mỗi portlet, ta cần khai báo thông tin về nó trong 3 tập tin:

 liferay-display.xml

Trang 29

Vào thư mục docroot/WEB-INF, mở tập tin liferay-display.xml ta thêm nội dung sau trong

thẻ <display>:

< category name ="vidu" >

< portlet id ="Feedback_Them" />

</ category >

Với khai báo trên, ta đã khai báo thêm một category tên là vidu Liferay sử dụng các category

để phân loại, sắp xếp các portlet để dễ quản lý Trong category vidu, ta khai báo một portlet

có id là Feedback_Them

Vào thư mục docroot/WEB-INF, mở tập tin portlet.xml ta thêm nội dung sau vào trong thẻ

<portlet-app>:

< portlet-name > Feedback_Them </ portlet-name >

< display-name > Feedback_Them </ display-name >

< portlet-class > org.portletfaces.bridge.GenericFacesPortlet </ class >

portlet-< init-param >

< name > javax.portlet.faces.defaultViewId.view </ name >

< value > /xhtml/Feedback_Them.xhtml </ value >

< title > Thêm mới feedback </ title >

< short-title > Thêm mới feedback </ short-title >

< keywords > Feedback </ keywords >

Trang 30

o <value>: khai báo tập tin xhtml đầu tiên của portlet (ở đây là tập tin

Feedback_Them.xhtml nằm trong thư mục xhtml)

 Thẻ <portlet-info>:

o <title>: khai báo tiêu đề portlet

o <short-title>: khai báo tiêu đề ngắn cho portlet (Liferay sẽ dùng để hiển thị trong phần quản lý portlet)

Vào thư mục docroot/WEB-INF, mở tập tin liferay-portlet.xml ta thêm nội dung sau vào

trong thẻ <liferay-portlet-app>:

< portlet >

< portlet-name > Feedback_Them </ portlet-name >

< icon > /icon.png </ icon >

< instanceable > false </ instanceable >

< ajaxable > false </ ajaxable >

< header-portlet-css > /css/main.css </ header-portlet-css >

< css-class-wrapper > feedback-portlet </ css-class-wrapper >

</ portlet >

Trong đó:

 Thẻ <portlet-name>: khai báo tên portlet, tên này phải trùng với id khai báo trong tập tin liferay-display.xml

/// Khai báo thêm trong file hibernate.cfg.xml

< mapping class ="com.cusc.cms.dept.nhansu.NhanSu" />

Và file model-orm.xml

< entity class ="com.cusc.cms.dept.nhansu.NhanSu" access ="FIELD">

< table name ="tbl_NhanSu" schema =""></ table >

< attributes >

< id name ="Id">

< column name ="Id" />

< generated-value strategy ="IDENTITY" />

</ id >

</ attributes >

</ entity >

Thêm servlet vô file web.xml

<! Servlet của bộ môn >

< servlet >

< servlet-name > NhanSu_DanhSach Servlet </ servlet-name >

< class > com.liferay.portal.kernel.servlet.PortletServlet </ servlet-class >

servlet-< init-param >

< param-name > portlet-class </ param-name >

Ngày đăng: 24/03/2020, 15:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w