Hungkin’s Blog

Tìm hiểu về Struts 2 (P.3)

Posted by hungkin™ on 23/05/2009

Ứng dụng Login

Ứng dụng đăng nhập hệ thống, người sử dụng nhập username, pasword. Ứng dụng kiểm tra, nếu hợp lệ thì thông báo thành công, ngược lại thì thông báo không thành công

– Action
Tạo lớp Login như sau

package java.exam;
import com.opensymphony.xwork2.ActionSupport;
/**
*

Validate a user login.

*/
public class Login extends ActionSupport {
public String execute() throws Exception {
if(!getUsername().equals(“Admin”) || !getPassword().equals(“Admin”)){
addActionError(“Invalid user name or password! Please try again!”);
return ERROR;
}else{
return SUCCESS;
}

}
// —- Username property —-
/**
*

Field to store User username.

*


*/
private String username = null;

/**
*

Provide User username.

*
* @return Returns the User username.
*/
public String getUsername() {
return username;
}

/**
*

Store new User username

*
* @param value The username to set.
*/
public void setUsername(String value) {
username = value;
}

// —- Username property —-

/**
*

Field to store User password.

*

*/
private String password = null;

/**
*

Provide User password.

*
* @return Returns the User password.
*/

public String getPassword() {
return password;
}

/**
*

Store new User password

*
* @param value The password to set.
*/
public void setPassword(String value) {
password = value;
}

}

– Control

Cấu hình action trong file struts.xml
/pages/login.jsp


/pages/login.jsp
/pages/login.jsp
/pages/loginsuccess.jsp

Cấu hình bộ thẩm định cho ứng dụng Login

Bộ thẩm định sẽ được cấu hình trong môt file X-validation.xml, X tương ứng với tên lớp của Action, ở đây ta sẽ tạo ra file Login-validation.xml, nó sẽ có cùng nơi chứa với lớp action Login

true Login name is required

true Password is required

– View

Tạo các trang JSP như sau
o Trang login.jsp: trang này cho phép người sử dụng nhập username và password vào

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
   <head>
      <title>Struts 2 Login Application!</title>
      <link href="<s:url value="/css/main.css"/>" rel="stylesheet" type="text/css"/>
   </head>
   <body>
      <s:form action="doLogin" method="POST">
      <tr>
        <td colspan="2">
          Login
        </td>
      </tr>
      <tr>
   <td colspan="2">
          <s:actionerror />
          <s:fielderror />
   </td>
      </tr>
        <s:textfield name="username" label="Login name"/>
        <s:password name="password" label="Password"/>
        <s:submit value="Login" align="center"/>
      </s:form>
   </body>
</html>

Struts 2 Login Application!

” rel=”stylesheet” type=”text/css”/>


Login

hiển thị các lỗi của Action
hiển thị các trường lỗi
sinh ra form HTML

Những thẻ này chúng ta sẽ tìm hiểu trong phần thư viện thẻ của Struts 2

– Trang loginsuccess.jsp: khi đăng nhập thành công

<html>
   <head>
      <title>Login Success</title>
   </head>
   <body>
      <p align="center"><font color="#000080" size="5">Login Successful</font></p>
   </body>
</html>

Login Successful

– File main.css

@CHARSET “UTF-8”;

body {
font: 12px verdana, arial, helvetica, sans-serif;
background-color:#FFFFFF;
}

table.wwFormTable {
font: 12px verdana, arial, helvetica, sans-serif;
border-width: 1px;

border-color: #030;
border-style: solid;
color: #242;
background-color: #ada;
width: 30%;
margin-left:35%;
margin-right:35%;
margin-top:15%;
}

table.wwFormTable th {
}

table.wwFormTable tr td {
background-color: #dfd;
margin: 5px;
padding: 5px;
}

.tdLabel {
/*
border-width: 1px;
border-color: #afa;
border-style: solid;
*/
font-weight: bold;

align: top;
}

.label {
}

.errorMessage {
color: red;
font-size: 0.8em;
}

#headerDiv {
border-style: solid;
border-width: 1px 1px 0px;
border-color: black;
padding: 5px;

background-color: #7a7;
/* height: 22px; */
height: 1.8em;
/* margin-bottom: 12px; */
}

#buttonBar {
border-width: 0px 1px 1px;
border-style: solid;
border-color: black;
color: white;
margin-bottom: 12px;
background-color: #7a7;
height: 1.6em;
padding: 5px;

}

#appName {
color: white;
font-size: 1.8em;
}

#pageTitle {
font-size: 1.4em;
color: #dfd;
clear: none;
}

#appName, #pageTitle {
float: right;
}

#menuContainer {
float: left;
}

#brandingContainer {
float: right:

text-align: right;
}

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

 
%d bloggers like this: