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 trong Struts 2

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

  • fieldName: xác định tên trường mà để được validate. Nó chỉ bắt buộc trong Plain-Validator.

  • minLength: xác định độ dài tối thiểu. Theo mặc định, nó được bỏ qua.

  • maxLength: xác định độ dài tối đa. Theo mặc định, nó được bỏ qua.

  • trim: cắt tỉa các giá trị của trường. Theo mặc định là true, nghĩa là nó đươc kích hoạt theo mặc định.

Ví dụ stringlength validation

Cho Plain Validator:

<validators>
   <!-- Vi du cho Plain Validator -->
	<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>
    <!-- Vi du cho Field Validator -->
    <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"/>