14/08/2018, 11:01

stringlength Validation trong Struts 2

stringlength Validator xác định rằng chuỗi phải có độ dài như đã được xác định. Nó có thể được sử dụng trong username, password, … Theo mặc định, nó cắt tỉa (bởi tham số trim) chuỗi đã cho và sau đó kiểm tra xem độ dài của chuỗi là trong độ dài đã cho không. Các tham số của ...

stringlength Validator xác định rằng chuỗi phải có độ dài như đã được xác định. Nó có thể được sử dụng trong username, password, … Theo mặc định, nó cắt tỉa (bởi tham số trim) chuỗi đã cho và sau đó kiểm tra xem độ dài của chuỗi là trong độ dài đã cho không.

Các tham số của stringlength Validator trong Struts 2

Có 4 tham số được định nghĩa cho stringlength Validator, đó là:

Ví dụ stringlength validation

Cho Plain Validator:

<validators>
    
	<validator type="stringlength">
	     <param name="fieldName">password</param>
             <param name="minLength">6</param>
             <param name="maxLength">10</param>
             <param name="trim">true</param>
             <message>Password phai tu 6 den 10 ky tu</message>		
         </validator>
    
</validators>

Cho Field Validator:

<validators>
     
    <field name="password">
    	  <field-validator type="stringlength">
          <param name="minLength">6</param>
          <param name="maxLength">10</param>
          <param name="trim">true</param>
          <message>Password phai tu 6 den 10 ky tu</message>		
       </field-validator>
    </field>

</validators>

Ví dụ đầy đủ stringlength validation trong Struts 2

Tạo index.jsp

Cho input từ người dùng. Nó nhận name, password, và email id từ người dùng.

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<STYLE type="text/css">
.errorMessage{color:red;}
</STYLE>
</head>
<body>

<s:form action="register">
<s:textfield name="username" label="Username"></s:textfield>
<s:password name="userpass" label="Password"></s:password>
<s:submit value="register"></s:submit>
</s:form>

</body>
</html>

Tạo lớp action

:

Lớp này kế thừa lớp ActionSupport và ghi đè phương thức validate.

RegisterAction.java

package com.vietjack;

import com.opensymphony.xwork2.ActionSupport;

public class Register extends ActionSupport{
private String username,userpass;

public String getUsername() {
	return username;
}

public void setUsername(String username) {
	this.username = username;
}

public String getUserpass() {
	return userpass;
}

public void setUserpass(String userpass) {
	this.userpass = userpass;
}

public String execute(){
	return "success";
}

}


Tạo validation file

Tại đây chúng ta đang sử dụng bundled validator để thực hiện trình validation.

Register-validation.xml

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

  <!DOCTYPE validators PUBLIC 
  		"-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

  		<validators>
  		
  		<field name="username">
  		<field-validator type="requiredstring">
  		<message>Name khong duoc de trong</message>
  		</field-validator>
  		</field>
  		
  		<field name="userpass">
  		<field-validator type="requiredstring">
  		<message>Password khong duoc de trong</message>
  		</field-validator>
  		<field-validator type="stringlength">
  		<param name="minLength">6</param>
  		<param name="maxLength">10</param>
  		<message>Password phai lon hon hoac bang 6 va nho hon hoac bang 10</message>
  		</field-validator>
  		
  		</field>
  		
  		</validators>

Tạo struts.xml

xml file định nghĩa một result bởi tên đã nhập, và một interceptor là jsonValidatorWorkflowStack.

<?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.Register">
<result name="input">index.jsp</result>
<result>welcome.jsp</result>
</action>

</package>

</struts>     
 

Tạo các thành phần view

JSP file đơn giản này hiển thị thông tin về người dùng.

welcome.jsp

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

Welcome,<s:property value="username"/>
0