1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hướng dẫn sử dụng Sự kết hợp của 2 framework Spring + Hibernate với JSF

24 625 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 24
Dung lượng 885,39 KB

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 sử dụng Sự kết hợp của 2 framework Spring + Hibernate với JSF Version 1.0... OverviewĐây là 1 sự kết hợp để xây dựng 1 ứng dụng web theo mô hình MVC: Tầng view do JSF đảm nhận

Trang 1

Hướng dẫn sử dụng Sự kết hợp của

2 framework Spring + Hibernate

với JSF

Version 1.0

Trang 2

Revision History

- Viết hướng dẫn sử dụng

Lê Diệp Oanh

Trang 3

Table of Contents

1 Overview 4

2 Các resource cần thiết và version 4

3 Hướng dẫn sử dụng 7

4 Chạy ứng dụng: 22

5 Tài liệu tham khảo 24

Trang 4

1 Overview

Đây là 1 sự kết hợp để xây dựng 1 ứng dụng web theo mô hình MVC: Tầng view do JSF đảm

nhận, tầng bussiness Spring đảm nhận và tầng tương tác với DB do Hibernate đảm nhiệm

Không giám khẳng định rằng đây là sự kết hợp tốt nhất, nhưng sự kết hợp của Spring và Hibernate thì không có vấn đề gì phải phàn nàn cả Và hiện nay theo một số ý kiến thì JSF còn tốt hơn cả

Struts (http://www.theserverside.com/discussions/thread.tss?thread_id=33884)

a Spring 2.5.4: Tìm trong spring-framework-2.5.4.zip các thư viện sau:

i spring.jar

b JSF 1.2.3: Tìm trong myfaces-core-1.2.3-bin.zip các thư viện sau:

i commons-beanutils-1.7.0.jar

ii commons-codec-1.3.jariii commons-collections-3.2.jar

iv commons-digester-1.8.jar

v commons-discovery-0.4.jar

vi commons-logging-1.1.1.jarvii myfaces-api-1.2.3.jarviii myfaces-impl-1.2.3.jar

c jstl 1.2: Tìm trong jstl-1.2.jar.zip những thư viện sau:

Trang 5

vi ant-swing-1.6.5.jarvii asm.jar

viii asm-attrs.jar

ix c3p0-0.9.1.jar

x cglib-2.1.3.jar

xi checkstyle-all.jarxii cleanimports.jarxiii concurrent-1.3.2.jar

xiv dom4j-1.6.1.jar

xv ehcache-1.2.3.jarxvi jaas.jar

xvii jacc-1_0-fr.jar

xviii javassist.jar

xix jaxen-1.1-beta-7.jar

xx jboss-cache.jarxxi jboss-common.jar

Trang 6

j Tomcat plugin cho Eclipse 3.3: tomcatPluginV321.zip (Chạy tomcat trên eclipse),

sau khi copy thư mục com.sysdeo.eclipse.tomcat_3.2.1 vào trong thư mục plugin của eclipse, ta thiết định Tomcat như sau:

Vào mục Preference…

Thiết định Tomcat như sau:

Trang 7

3 Hướng dẫn sử dụng

B1: Tạo 1 project dạng Tomcat project: Tên project JSF_SP_Hi01

Trang 8

Cấu trúc project sau khi tạo xong: (Tạo thêm thư mục jsp để chứa các file jsp)

B2: Copy các thư viện ở trên vào thư mục /WEB-INF/lib/

Sau đó tiến hành add vào Libraries trong Java Build Path

Trang 9

B3: Kiểm tra jdk có phải là đang sử dụng jdk 5 hay không:

Vào Project properties -> vào Java Build Path, kiểm tra đúng như hình sau không:

Trang 10

Sau đó vào mục Java Compiler kiểm tra đúng như màn hình sau hay không:

Trang 11

B4: Cấu hình file web.xml như sau:

Những đoạn text bôi màu đỏ là những đoạn có thể tùy biến, cụ thể như sau:

+<display-name>JSF_SP_Hi01</display-name>

Tag này có thể có hoặc không, là tên hiển thị của web application

+ <welcome-file>index.html</welcome-file>

Tag này có hoặc không, chỉ định file mặc định chạy ứng dụng Ví dụ khi nhập vào địa chỉ:

http://localhost:8080/JSF_SP_Hi01/, nó sẽ dựa vào welcome-file này mà chạy file tương ứng

http://localhost:8080/JSF_SP_Hi01/ tương đương với

http://localhost:8080/JSF_SP_Hi01/index.html

+<url-pattern>*.jsf</url-pattern>

Trang 12

Chỉ định dạng url nào sẽ được javax.faces.webapp.FacesServlet xử lý Chính là phần xử lý liên quan đến JSF

+ <param-value>/WEB-INF/JSF_SP_Hi01.xml</param-value>

Chỉ định đến file cấu hình Spring + Hibernate của project, đặt tên file xml tùy ý

+ <url-pattern>*.jsf</url-pattern>

Chỉ định dạng url nào sẽ được filter bởi

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter Đây là phần filter của

Spring với các request dạng jsf

Trang 13

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

<listener-</listener>

<listener>

class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>

<listener-</listener>

</web-app>

B5: Tạo file properties kết nối với DB, cụ thể ví dụ là postgresql:

/WEB-INF/postgres.properties

Trang 14

B5: Cấu hình file cho sự kết hợp Spring + Hibernate: JSF_SP_Hi01.xml như sau:

Lưu ý những phần tô đỏ sau:

Chỉ đến file hibernate XML Mapping (.hbm.xml)

+<bean id="HibernateSpringDaoTarget" class="dao.HibernateSpringDAOImpl">

Class được tạo ra trong project để xử lý ở tầng Database

Trang 15

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

<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

< property name = "dataSource" >

< ref local = "dataSource" />

< property name = "sessionFactory" >

< ref local = "sessionFactory" />

</ property >

</ bean >

<! My bean >

<bean id="HibernateSpringDaoTarget" class="dao.HibernateSpringDAOImpl">

< property name = "sessionFactory" >

< ref local = "sessionFactory" />

</ property >

</ bean >

< bean id = "SpringHibernateDao"

class = "org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >

< property name = "transactionManager" >

< ref local = "transactionManager" />

</ property >

< property name = "target" >

< ref local = "HibernateSpringDaoTarget" />

</ property >

< property name = "transactionAttributes" >

< props >

< prop key = "get*" > PROPAGATION_REQUIRED,readOnly </ prop >

< prop key = "find*" > PROPAGATION_REQUIRED,readOnly </ prop >

< prop key = "load*" > PROPAGATION_REQUIRED,readOnly </ prop >

< prop key = "store*" > PROPAGATION_REQUIRED </ prop >

Trang 16

B6: Tạo 1 Class User tương ứng với table users trong DB như sau: bean.User

package bean;

import java.io.Serializable;

public class User implements Serializable {

private Integer userId;

private String userName;

private String userPassword;

private String userEmail;

private String userAddress;

public User(Integer userId, String userName, String userPassword, String userEmail, String userAddress) {

Trang 17

Và tạo file mapping User.hbm.xml như đã khai báo trong file cấu hình Spring + Hibernate:

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

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping

DTD//EN"

3.0.dtd">

"http://hibernate.sourceforge.net/hibernate-mapping-<hibernate-mapping auto-import="true" default-lazy="false">

<class name="bean.User" table="users">

<id name="userId" type="java.lang.Integer" column="userId">

<generator class="increment" />

</id>

<property name="userName" type="java.lang.String"

column="userName" length="20" />

<property name="userPassword" type="java.lang.String"

column="userPassword" length="11" />

<property name="userEmail" type="java.lang.String"

column="userEmail" length="30" />

<property name="userAddress" type="java.lang.String"

column="userAddress" length="30" />

</class>

</hibernate-mapping>

B7: Tạo ra 1 class dùng để check user: bean.CheckValidUser

Trang 18

public String checkUser() throws Exception {

HibernateSpringDAO dao = (HibernateSpringDAO) ServiceFinder

return status;

}

}

B8: Tạo 1 interface DAO dao.HibernateSpringDAO có chứa phương thức validateUser()

được sử dụng trong class CheckValidUser:

package dao;

import org.springframework.dao.DataAccessException;

import bean.User;

public interface HibernateSpringDAO {

public User validateUser(String strUserName,String password)

throws DataAccessException,java.sql.SQLException;

}

Trang 19

public class HibernateSpringDAOImpl extends HibernateDaoSupport

implements HibernateSpringDAO {

public User validateUser(String strUserName,String password)

throws DataAccessException, java.sql.SQLException {

User obj = null;

DetachedCriteria criteria =

DetachedCriteria.forClass(User.class);

List objs = getHibernateTemplate().findByCriteria(criteria);

if ((objs != null) && (objs.size() > 0)) {

obj = (User) objs.get(0);

public class ServiceFinder {

public static Object findBean(String beanName) {

FacesContext context = FacesContext.getCurrentInstance();

ServletContext servletContext = (ServletContext) context

Trang 20

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

<!DOCTYPE faces-config PUBLIC

"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<meta http-equiv="Refresh" content="0;url=jsp/index.jsf">

Trang 21

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

Trang 22

4 Chạy ứng dụng:

B1: Start Tomcat: Click vào biểu tượng

B2: Đưa project vào server Tomcat như sau

Đảm bảo quá trình trên không có lỗi xảy ra, màn hình kết quả như sau (Trên Console)

Trang 24

Hoàn tất demo về sự kết hợp giữa Spring + Hibernate + JSF

- http://www.roseindia.net/jsf/myfacesspring/index.shtml\

Ngày đăng: 12/04/2015, 14:06

TỪ KHÓA LIÊN QUAN

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

w