Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
1,14 MB
Nội dung
Enterprise Application Development in Java EE Lab05 Introduction to JavaServerFaces Mục tiêu - Cách tạo ứng dụng Java Web với framework JavaServerFaces (JSF) - Hiểu rõ thành phần tương tác thành phần JSF - Nắm vững vòng đời JSF - Tạo project JSFthực nghiệp vụ Insert, Update, Delete, GetAll - Nắm vững cách validator, converter message validator, converter Phần I Bài tập step by step Bài 5.1 Tạo CSDL tên JSFDataBase có bảng sau : Catalog Column CatalogId Data Type Int Characteristic PK, Auto Description Mã loại sản phẩm Increment CatalogName Nvarchar(50) Not Null Tên mã loại sản phẩm Desciption Ntext Allow Null Mô tả loại sản phẩm Tạo thủ tục thực nghiệp vụ Insert, Update, Delete, GetAll với bảng Catalog IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE Step 1: Tạo Database JSFDataBase Step 2: Tạo Bảng Catalog Step 3: Tạo thủ tục thực nghiệp vụ Insert, Update, Delete, GetAll GetAllCatalog InsertCatalog UpdateCatalog IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE DeleteCatalog Bài 5.2 Tạo Project Java Web Application với JavaServerFaces có tên JSFCRUD Tạo thành phần ứng dụng JSF Tạo lớp kết nối với Database JSFDataBase Step 1: Tạo Project JSF có tên JSFCRUD File New Project Java Web Web Application IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE Cấu trúc ứng dụng sau hoàn thành IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE Step 2: Tạo thành phần ứng dụng JSFCRUD Tạo file JSF Faces Configuration JSFCRUD New Other JavaServer Faces JSF Faces Configuration IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE File faces-config.xml sau tạo xong thư mục WEB-INF Tạo file ManagedBean có tên CatalogManagedBean package mangagedBean Source Packages New Other JavaServer Faces JSF Managed Bean IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE Sau tạo thành CatalogManagedBean khai báo tự động faceconfig.xml IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE This is Managed Bean of modul Catalog catalogManagedBean managedBean.CatalogManagedBean session Tạo lớp kết nối với Database JSFDatabase Tạo lớp Java có tên ConnectDB.java package util package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author admin */ public class ConnectDB { private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=JSFDataBase"; private static final String DB_DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String user = "sa"; private static final String password = "1234$"; public static Connection getDBConnection(){ Connection conn = null; try { Class.forName(DB_DRIVER); try { conn = DriverManager.getConnection(URL, user, password); } catch (SQLException ex) { Logger.getLogger(ConnectDB.class.getName()).log(Level.SEVERE, null, ex); } } catch (ClassNotFoundException ex) { Logger.getLogger(ConnectDB.class.getName()).log(Level.SEVERE, null, ex); } return conn; } } Cấu trúc ứng dụng sau hoàn thành IT Research Department @BKAP 2015 Page / 18 Enterprise Application Development in Java EE Bài 5.3 Tạo thực thể Catalog có thuộc tính bảng Catalog Code chức Insert, Update, Delete, GetAll lớp CatalogManagedBean Xây dựng giao diện UI để thực tác vụ Step 1: Tạo lớp java (Catalog.java) thể thuộc tính thực thể Catalog package entities package entities; /** * * @author admin */ public class Catalog { private int catalogId; private String catalogName; private String description; public int getCatalogId() { return catalogId; } public void setCatalogId(int catalogId) { this.catalogId = catalogId; } IT Research Department @BKAP 2015 Page 10 / 18 Enterprise Application Development in Java EE public String getCatalogName() { return catalogName; } public void setCatalogName(String catalogName) { this.catalogName = catalogName; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } Step 2: Code chức Insert, Update, Delete, GetAll CatalogManagedBean.java package managedBean; import entities.Catalog; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import util.ConnectDB; /** * * @author admin */ public class CatalogManagedBean { //Doi tuong catalog can update private Catalog catalogUpdate; //Doi tuong catalog can Insert private Catalog catalogInsert; /** * Creates a new instance of CatalogManagedBean */ public CatalogManagedBean() { //Khoi tao cac doi tuong catalogUpdate = new Catalog(); catalogInsert = new Catalog(); } IT Research Department @BKAP 2015 Page 11 / 18 Enterprise Application Development in Java EE //Phuong thuc lay tat ca du lieu tu Database JSFDataBase public List getAllCatalog() { List listCatalog = new ArrayList(); Connection conn = null; CallableStatement callableStatement = null; try { //Tao connection database conn = ConnectDB.getDBConnection(); //Goi thu tuc GetAllCatalog callableStatement = conn.prepareCall("{call GetAllCatalog()}"); //Du lieu lay ve day vao ResultSet ResultSet rs = callableStatement.executeQuery(); while (rs.next()) { //Add du lieu vao listCatalog Catalog catalogGet = new Catalog(); catalogGet.setCatalogId(rs.getInt("CatalogId")); catalogGet.setCatalogName(rs.getString("CatalogName")); catalogGet.setDescription(rs.getString("Description")); listCatalog.add(catalogGet); } } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } return listCatalog; } //Phuong thuc insert catalog vao Database public void insertCatalog() { Connection conn = null; CallableStatement callableStatement = null; try { //Khoi tao connection conn = ConnectDB.getDBConnection(); callableStatement = conn.prepareCall("{call InsertCatalog(?,?)}"); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } try { //Set du lieu vao callableStatement de insert vao database callableStatement.setString(1, this.catalogInsert.getCatalogName()); callableStatement.setString(2, this.catalogInsert.getDescription()); //Insert Database callableStatement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } } //Phuong thuc lay du lieu catalog can Update public void initUpdate() { //Danh sach cac Catalog List listCatalog = getAllCatalog(); //Khoi tao FaceContext FacesContext fc = FacesContext.getCurrentInstance(); //Khoi tao request xu ly HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest(); //Lay parameter catalogId co request IT Research Department @BKAP 2015 Page 12 / 18 Enterprise Application Development in Java EE int catalogId = Integer.parseInt(request.getParameter("catalogId")); for (Catalog catalog : listCatalog) { if (catalog.getCatalogId() == catalogId) { //Lay catalog can update vao catalogUpdate this.catalogUpdate = catalog; break; } } } //Phuong thucthuc hien update Catalog public void updateCatalog() { Connection conn = null; CallableStatement callableStatement = null; try { //Khoi tao connection conn = ConnectDB.getDBConnection(); //Goi thu tuc UpdateCatalog callableStatement = conn.prepareCall("{call UpdateCatalog(?,?,?)}"); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } try { //Set du lieu vao callableStatement callableStatement.setInt(1, this.catalogUpdate.getCatalogId()); callableStatement.setString(2, this.catalogUpdate.getCatalogName()); callableStatement.setString(3, this.catalogUpdate.getDescription()); //Thuc hien update callableStatement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } } public void deleteCatalog() { //Khoi tao FaceContext FacesContext fc = FacesContext.getCurrentInstance(); //Khoi tao request xu ly HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest(); //Lay parameter catalogId co request int catalogId = Integer.parseInt(request.getParameter("catalogId")); Connection conn = null; CallableStatement callableStatement = null; try { //Khoi tao connection conn = ConnectDB.getDBConnection(); //Goi thu tuc DeleteCatalog callableStatement = conn.prepareCall("{call DeleteCatalog(?)}"); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } try { //Set du lieu vao callableStatement callableStatement.setInt(1, catalogId); //Thuc hien Delete IT Research Department @BKAP 2015 Page 13 / 18 Enterprise Application Development in Java EE callableStatement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(CatalogManagedBean.class.getName()).log(Level.SEVERE, null, ex); } } //Getter and Setter public Catalog getCatalogUpdate() { return catalogUpdate; } public void setCatalogUpdate(Catalog catalogUpdate) { this.catalogUpdate = catalogUpdate; } public Catalog getCatalogInsert() { return catalogInsert; } public void setCatalogInsert(Catalog catalogInsert) { this.catalogInsert = catalogInsert; } } Step 3: Xây dựng hình UI thực tác vụ listCatalog.xhtml: File xhtml chứa tất danh sách catalog chứa chức insert, update, delete List Catalog List Catalog Catalog ID IT Research Department @BKAP 2015 Page 14 / 18 Enterprise Application Development in Java EE Catalog Name Descriptions Edit Delete addCatalog.xhtml: File xhtml thực nhập liệu catalog cần insert Insert Catalog Insert Catalog IT Research Department @BKAP 2015 Page 15 / 18 Enterprise Application Development in Java EE updateCatalog.xhtml: File xhtml thực chỉnh sửa catalog cần Update Insert Catalog Insert Catalog Step 4: Build and Run ứng dụng IT Research Department @BKAP 2015 Page 16 / 18 Enterprise Application Development in Java EE IT Research Department @BKAP 2015 Page 17 / 18 Enterprise Application Development in Java EE IT Research Department @BKAP 2015 Page 18 / 18 ... DeleteCatalog Bài 5. 2 Tạo Project Java Web Application với JavaServerFaces có tên JSFCRUD Tạo thành phần ứng dụng JSF Tạo lớp kết nối với Database JSFDataBase Step 1: Tạo Project JSF có tên JSFCRUD... @BKAP 20 15 Page / 18 Enterprise Application Development in Java EE Step 2: Tạo thành phần ứng dụng JSFCRUD Tạo file JSF Faces Configuration JSFCRUD New Other JavaServer Faces JSF Faces... return conn; } } Cấu trúc ứng dụng sau hoàn thành IT Research Department @BKAP 20 15 Page / 18 Enterprise Application Development in Java EE Bài 5. 3 Tạo thực thể Catalog có thuộc tính bảng Catalog