1. 程式人生 > >Struts2校驗器實現註冊校驗

Struts2校驗器實現註冊校驗

一、場景

  • 使用者名稱不能為空,長度為6-14位(第一位為大寫字母,後面每一位為字母、數字、下劃線)    ,使用者名稱不能為admin、
  • 密碼不能為空,密碼長度為8-10位;
  • 密碼和確認密碼一致

二、實現

User

public class User {

    private String name;
    private String pass;
    private String repass;

   //省略get set

RegisterAction6

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction6 extends ActionSupport {

  private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String rej(){
        System.out.println("進入註冊方法");
        return "success";
    }
}

RegisterAction6-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

<validators>
    <field name="user.name">
        <field-validator type="requiredstring" short-circuit="true">
            <param name="trim">true</param>
            <message>使用者名稱不為空</message>
        </field-validator>
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">6</param>
            <param name="maxLength">14</param>
            <message>使用者名稱長度為6-14位</message>
        </field-validator>
        <field-validator type="regex" short-circuit="true">
            <param name="regexExpression"><![CDATA[([A-Z]\w*)]]></param>
            <message>使用者名稱第一位為大寫字母,後面每一位為字母、數字、下劃線</message>
        </field-validator>
        <field-validator type="fieldexpression" short-circuit="true">
            <param name="expression"><![CDATA[(user.name != "admin")]]></param>
            <message>使用者名稱不能為admin</message>
        </field-validator>
    </field>
    <field name="user.pass" >
        <field-validator type="required" short-circuit="true">
            <message>密碼不能為空</message>
        </field-validator>
        <field-validator type="stringlength" short-circuit="true">
            <param name="minLength">8</param>
            <param name="maxLength">10</param>
            <message>密碼長度為8-10位</message>
        </field-validator>
    </field>
    <field name="user.repass">
        <field-validator type="fieldexpression" short-circuit="true">
            <param name="expression"><![CDATA[(user.pass == user.repass)]]></param>
            <message>密碼和確認密碼一致</message>
        </field-validator>
    </field>
</validators>

sixstruts.xml

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

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <package name="user6" extends="struts-default">
        <action name="rej6" class="six.RegisterAction6" method="rej">
            <result name="success">/6/show6.jsp</result>
            <result name="input">/6/register6.jsp</result>
        </action>
    </package>
</struts>

register6.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>註冊頁面</title>
</head>
<body>
<form action="rej6">
    <h2>註冊</h2>
    使用者名稱:<input type="text" name="user.name"/>
    <h2 style="color: red"><s:fielderror fieldName="user.name"></s:fielderror></h2>
    密碼:<input type="password" name="user.pass"/>
    <h2 style="color: red"><s:fielderror fieldName="user.pass"></s:fielderror></h2>
    重複密碼:<input type="password" name="user.repass"/>
    <h2 style="color: red"><s:fielderror fieldName="user.repass"></s:fielderror></h2>
    <input type="submit" value="提交" />
</form>
</body>
</html>

三、執行



四:問題與解決

①:加入驗證器後無法請求(連線失敗):

校驗器標頭檔案出錯:

<?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"> 

改為:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

②:第一位為大寫字母,後面每一位為字母、數字、下劃線(正則)

[A-Z]\w*

③:短路功能:

short-circuit="true"


相關推薦

Struts2實現註冊

一、場景使用者名稱不能為空,長度為6-14位(第一位為大寫字母,後面每一位為字母、數字、下劃線)    ,使用者名稱不能為admin、密碼不能為空,密碼長度為8-10位;密碼和確認密碼一致二、實現Userpublic class User { private Str

自定義一個--------------------------完成用戶註冊時候,對username是否符合規則以及時候已經存在於數據庫的

實例 check ajax -- value ava .cn java 數據 實例: <!-- 自定義校驗表單--> $.validator.addMethod( "checkusername", //校驗規則名稱,類似於required

註冊的引入

引入 blog form script 校驗器 for type ava red <script src="js/jquery.validate.min.js" type="text/javascript"></script> <scrip

使用者註冊登陸&引數&全域性捕獲異常&分散式session

工具類準備 分散式ID工具類 package com.example.miaosha_xdp.util; import java.util.UUID; public class UUIDUtil { public static String uuid(){ /**

Struts2的正則表示式不起作用?

<field name="password">         <field-validator type="regex">             <param name="regexExpression"><![CDATA[(\d

struts2常用及其配置

Struts2 常見校驗器: required:必填校驗器 requiredstring:必填字串校驗器 int:整數校驗器 double:雙精度浮點數校驗器 date:日期校驗器 expressi

Struts2中validator不起作用的情況

         1  xxx- validation.xml。其中xxx為需要驗證的action,若要驗證其中一個方法如:execute。 則命名為:xxx-execute-validation.xml。與action放在同一目錄下。          2  XML檔案的

Struts2資料功能實現

前言 資料校驗一般是校驗表單項的內容。 而驗證的主要通過: 前臺驗證:主要是通過JS驗證資料是否合法! 後臺驗證:通過後臺java程式碼進行驗證! 那麼,本文主要介紹後端Struts校驗的實現。 回顧之前的資料驗證,主要是在業務邏輯程式碼之前增加if

Struts2 輸入校(Action中使用國際化資原始檔、

Action類獲得國際化資原始檔中的資訊,主要使用ActionSupport類的getText方法進行。 ActionSupport類過載了很多getText方法,常用的有如下幾個: 1、getText(String aTextName):引數aTextName是資原始檔中

自定義的註解實現

首先先學習一下註解,註解為我們在程式碼中新增資訊提供了一種形式化的方法,使得我們在稍後的某個時刻可以方便地使用這些資料。     在日常的編碼中我們一直都在使用註解,只是沒有特別關注過,Java中內建了三種註解:@Override,@SuppressWarnings @Deprecated。相信只要學習過J

Struts2(二)之註解

為了在Action類通過指定驗證規則,只要使用驗證器註解修飾Action裡各成員對應的setter方法即可。 public class RegistAction extends ActionSupport { // 定義4個成員變數封裝請求引數 private Stri

js 參數

福建 整數 pan 移動端 環境 web value sem fin //校驗器 var validate = { //校驗當前運行環境是否是手機端 isWap:function(){ var sUserAgent= navigator.u

springmvc(四) springmvc的數據實現

jar ring 錯誤 登錄 分享 文件 框架 creat 對象       so easy~               --WH 一、什麽是數據校驗?       這個比較好理解,就是用來驗證客戶輸入的數據是否合法,比如客戶登錄時,用戶名不能為空,或者不能超出指定長度等

簡單的前端框架實現

占位符 orm tor urn message class tle 添加 != 前端表單在提交前總是要進行校驗的,而這些工作是繁瑣的,所以這兒寫了一個簡單的校驗框架,代碼實現如下: function Validate(id){ if(arguments.leng

serializers 序列化裡面進行

一 # 宣告序列化器from rest_framework import serializersfrom djangoDome.models import Bookclass PublisherSerializer(serializers.Serializer): id = serializers.I

後臺。利用Jquery與Ajax實現使用者名稱小Demo

Test類 package com.wangchao.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annot

Yii2 RULE

一、場景 什麼情況下需要使用場景呢?當一個模型需要在不同情境中使用時,若不同情境下需要的資料表字段和資料驗證規則有所不同,則需要定義多個場景來區分不同使用情境。例如,使用者註冊的時候需要填寫email,登入的時候則不需要,這時就需要定義兩個不同場景加以區分。 預設情況下模型的場景是由rule

SpringMVC框架(2)之(2.3 Validation

Validation校驗器 SpringMVC使用 JSR-303 校驗規範,使用是 Hibernate Validator 【1】設定環境: 1.導jar包; 2.在處理器介面卡中配置校驗器; 3.建立資原始檔(eg:CustomValiationMessages.properti

validation引數的使用

1.引入依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star

iview中Select 選擇多選

iview提供的select元件中使用multiple屬性可以開啟多選模式,返回的資料也是陣列的形式。 iview使用的校驗是根據async-validator來實現資料驗證。驗證規則可前去檢視開源專案 多選模式下的select元件校驗使用type為array,可設定len屬性來規定陣列的長度,