Tích hợp Struts 2 với Hibernate



Chúng ta có thể tích hợp bất cứ ứng dụng Struts nào với Hibernate. Bạn cần có các jar file cho Struts 2 và Hibernate. Chương này, chúng ta tạo ví dụ tạo registration form bởi sử dụng Struts 2 và lưu trữ dữ liệu này bên trong Database bởi sử dụng Hibernate. Dưới đây là các file cần thiết:

  • index.jsp để lấy input từ người dùng.

  • user.java: một lớp action để xử lý request. Nó sử dụng lớp DAO để lưu trữ dữ liệu.

  • registerDao.java: một lớp java mà sử dụng mẫu thiết kế DAO để lưu trữ dữ liệu bởi sử dụng Hibernate.

  • user.hbm.xml: Một file ánh xạ mà chứa thông tin về lớp persistent. Ở đây, lớp action làm việc như lớp persistent trong Hibernate.

  • hibernate.cfg.xml: một file cấu hình chứa thông tin về Database và file ánh xạ.

  • struts.xml: chứa thông tin về lớp action và result để được triệu hồi.

  • welcome.jsp: hiển thị thông tin Welcome tới người dùng.

  • web.xml: chứa thông tin về Controller của Struts Framework.

1. Tạo index.jsp

Trong page này, chúng ta tạo một form bởi sử dụng struts-tags. Tên của action cho form này là register.

<%@ taglib uri="/struts-tags" prefix="S" %>


2. Tạo user.java

Đây là một lớp POJO đơn giản. Tại đây, nó làm việc như là lớp action cho Struts và là lớp persistent cho Hibernate. Nó gọi phương thức register của lớp RegisterDao và trả về success ở dạng chuỗi.

package com.vietjack;public class User {
private int id;
private String name;
//phuong thuc getter va setterpublic String execute(){
	RegisterDao.saveUser(this);
	return "success";
}}

3. Tạo registerDao.java

Đây là một lớp Java mà lưu giữ đối tượng của lớp User bởi sử dụng Hibernate Framework.

package com.vietjack;import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class RegisterDao {public static int saveUser(User u){
		
Session session=new Configuration().
configure("hibernate.cfg.xml").buildSessionFactory().openSession();
		
Transaction t=session.beginTransaction();
int i=(Integer)session.save(u);
t.commit();
session.close();
		
return i;}}

4. user.hbm.xml

File ánh xạ nay chứa tất cả thông tin của lớp persistent.









          

5. Tạo hibernate.cfg.xml

File cấu hình này chúa thông tin về Database và file ánh xạ. Ở đây, chúng ta sử dụng thuộc tính hb2ddl.auto, vì thế bạn không cần tạo bảng trong Database.




update
org.hibernate.dialect.Oracle9Dialect
jdbc:oracle:thin:@localhost:1521:xe
system
oracle
oracle.jdbc.driver.OracleDriver

    

6. Tạo struts.xml

File này chứa thông tin về lớp action để được triệu hồi. Lớp action ở đây là User.





welcome.jsp


 

6. Tạo welcome.jsp

Hiển thị thông điệp welcome với username.

<%@ taglib uri="/struts-tags" prefix="S" %>Welcome: 

7. Tạo web.xml

Chứa thông tin về Controller. Với Struts 2, lớp StrutsPrepareAndExecuteFilter làm việc như là Controller.



  
    index.jsp
  
  
  	struts2
  	
  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	
  
  
  	struts2
  	/*