Ví dụ Registration Form trong Struts 2 Trong ví dụ này, chúng ta sẽ tạo một Registration Form bởi sử dụng các UI tags và lưu trữ các thông tin này vào trong Oracle Database.. Bạn cũng c
Trang 1Ví dụ Registration Form trong Struts 2 Trong ví dụ này, chúng ta sẽ tạo một Registration Form bởi sử dụng các UI tags và lưu trữ các thông tin này vào trong Oracle Database Bạn cũng có thể sử dụng Database khác như MySQL, DB2, … tùy theo yêu cầu của bạn Bạn theo dõi bảng mà ta đã tạo trong Oracle Database Trong bảng này chúng tôi đã không tạo bất cứ id nào cho mỗi người dùng để đơn giản hóa ví dụ, nhưng khi làm việc thì tốt hơn hết bạn nên tạo id
CREATE TABLE "STRUTSUSER"
( "NAME" VARCHAR2 ( 4000 ),
"PASSWORD" VARCHAR2 ( 4000 ),
"EMAIL" VARCHAR2 ( 4000 ),
"GENDER" VARCHAR2 ( 4000 ),
"COUNTRY" VARCHAR2 ( 4000 )
)
Dưới đây là các bước để tạo ứng dụng Registration Form trong Struts 2:
Tạo index.jsp
JSP page đơn giản này sử dụng hai UI tags để tạo một form để lấy input từ người dùng
<%@ taglib uri ="/struts-tags" prefix ="s" %>
<s:form action ="register" >
<s:textfield name ="name" label ="UserName" ></s:textfield>
<s:password name ="password" label ="Password" ></s:password>
<s:textfield name ="email" label ="Email" ></s:textfield>
<s:radio list ="{'male','female'}" name ="gender" ></s:radio>
<s:select cssStyle ="width:155px;" list ="{'vietnam','anh','nuockhac',}"
name ="country" label ="Country" ></s:select>
<s:submit value ="register" ></s:submit>
</s:form>
Trang 2Tạo lớp action
:
Lớp Action này có 5 trường và một phương thức execute Như bạn biết, Struts Framework tạo instance của lớp action cho mỗi request, vì thế chúng ta đang truyền đối tượng này trong cùng phương thức của lớp RegisterDao
RegisterAction.java
package com vietjack ;
public class RegisterAction
private String name , password , email , gender , country ;
//Phuong thuc setter va getter
public String execute (){
int i = RegisterDao save ( this );
if ( > ){
return "success";
}
return "error";
}
}
Tạo lớp để lưu trữ dữ liệu
Lớp này lấy thông tin từ đối tượng của lớp RegisterAction và lưu trữ các thông tin này trong bảng Strutsuser
RegisterDao.java
package com vietjack ;
import java sql *;
public class RegisterDao
public static int save ( RegisterAction r ){
int status = ;
Trang 3try {
Class forName ("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager getConnection (
"jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
PreparedStatement ps = con prepareStatement ("insert into strutsuser values(?,?,?,?,?)");
ps setString ( , getName ());
ps setString ( , getPassword ());
ps setString ( , getEmail ());
ps setString ( , getGender ());
ps setString ( , getCountry ());
status = ps executeUpdate ();
} catch ( Exception e ){ e printStackTrace ();}
return status ;
}
}
Ánh xạ request trong struts.xml file và định nghĩa các thành phần view
xml file này chứa thông tin về package, lớp action và các thành phần view
struts.xml
<? xml version ="1.0" encoding ="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name ="default" extends ="struts-default" >
<action name ="register" class ="com.vietjack.RegisterAction" >
<result name ="success" > register-success.jsp </result>
Trang 4<result name ="error" > register-error.jsp </result>
</action>
</package>
</struts>
Tạo các thành phần view
Tại đây, chúng ta tạo hai thành phần view là register-success.jsp và register-error.jsp
register-success.jsp
<%@ taglib uri ="/struts-tags" prefix ="s" %>
Welcome, <s:property value ="name" ></s:property>
register-error.jsp
<%@ taglib uri ="/struts-tags" prefix ="s" %>
Sorry, some error occured!
<s:include value ="index.jsp" ></s:include>