在struts2框架中實現手動處理輸入驗證
在struts2框架中實現手動處理輸入驗證,只需要在Action中對父類ActionSupport的validate方法重寫即可。就是講輸入驗證邏輯寫在validate方法中。下面看專案中的Action類checkUser.java
package action;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionSupport;
public class checkUser extends ActionSupport {
private static final long serialVersionUID = 1L;
private String user ;
private String sex;
private String pass;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
public String execute() throws Exception {
return super.execute();
}
@Override
public void validate() {
if (getUser() == null || "".equals(getUser().trim())) {
this.addFieldError("user", "使用者名稱不能為空!");
} else {
Pattern p = Pattern.compile("\\w{6,20}");
Matcher m = p.matcher(getUser().trim());
if (!m.matches()) {
this.addFieldError("user", "使用者名稱由下劃線、字母、數字構成,長度為6-20");
}
}
if(getSex() == null || "".equals(getSex().trim())){
this.addFieldError("sex", "性別不能為空!");
}else if(getSex() != "男" || getSex() != "女"){
this.addFieldError("sex", "性別只能是男和女!");
}
if (getPass() == null || "".equals(getPass().trim())) {
this.addFieldError("pass", "密碼不能為空!");
} else {
int s = getPass().trim().length();
if (s<6 || s>30) {
this.addFieldError("pass", "密碼長度為應該在6-30之間!");
}
}
}
}
這個Action類中多了一個validate方法,其作用是對檢視頁面傳過來的資料進行驗證,驗證規則則由自己編寫。addFUeldError
方法的作用是將錯誤的資訊儲存起來,只要有Fidld級別的錯誤資訊,struts2就跳轉到input檢視。程式中還用到了Pattern和
Matcher兩個類,這是java中用於處理正規表示式的類。下面是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="actionCheckUser" extends="struts-default">
<action name="check" class="action.checkUser">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Struts2手動驗證</title>
</head>
<body>
<s:fielderror></s:fielderror>
<s:form action="check.action" theme="simple">
使用者名稱:<s:textfield name="user" label=""></s:textfield><br/><br/>
性別框:<s:textfield name="sex" label=""></s:textfield><br/><br/>
密碼框:<s:password name="pass" label=""></s:password><br/><br/>
<s:submit value="提交"></s:submit>
</s:form>
</body>
屬性的作用是表單使用struts2的簡易主題。
package action;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionSupport;
public class checkUser extends ActionSupport {
private static final long serialVersionUID = 1L;
private String user ;
private String sex;
private String pass;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
public String execute() throws Exception {
return super.execute();
}
@Override
public void validate() {
if (getUser() == null || "".equals(getUser().trim())) {
this.addFieldError("user", "使用者名稱不能為空!");
} else {
Pattern p = Pattern.compile("\\w{6,20}");
Matcher m = p.matcher(getUser().trim());
if (!m.matches()) {
this.addFieldError("user", "使用者名稱由下劃線、字母、數字構成,長度為6-20");
}
}
if(getSex() == null || "".equals(getSex().trim())){
this.addFieldError("sex", "性別不能為空!");
}else if(getSex() != "男" || getSex() != "女"){
this.addFieldError("sex", "性別只能是男和女!");
}
if (getPass() == null || "".equals(getPass().trim())) {
this.addFieldError("pass", "密碼不能為空!");
} else {
int s = getPass().trim().length();
if (s<6 || s>30) {
this.addFieldError("pass", "密碼長度為應該在6-30之間!");
}
}
}
}
這個Action類中多了一個validate方法,其作用是對檢視頁面傳過來的資料進行驗證,驗證規則則由自己編寫。addFUeldError
方法的作用是將錯誤的資訊儲存起來,只要有Fidld級別的錯誤資訊,struts2就跳轉到input檢視。程式中還用到了Pattern和
Matcher兩個類,這是java中用於處理正規表示式的類。下面是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="actionCheckUser" extends="struts-default">
<action name="check" class="action.checkUser">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Struts2手動驗證</title>
</head>
<body>
<s:fielderror></s:fielderror>
<s:form action="check.action" theme="simple">
使用者名稱:<s:textfield name="user" label=""></s:textfield><br/><br/>
性別框:<s:textfield name="sex" label=""></s:textfield><br/><br/>
密碼框:<s:password name="pass" label=""></s:password><br/><br/>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
屬性的作用是表單使用struts2的簡易主題。
相關文章
- 一個請求在Struts2框架中的處理流程框架
- Spring Boot中實現輸入引數驗證教程Spring Boot
- js--手動實現一個常見的簡訊驗證碼輸入框JS
- 驗證碼處理在自動化測試中的應用
- 使用Fortran實現當前驗證碼自動化處理
- Struts框架_9 Struts2的驗證框架
- Web 端 實現 app “輸入驗證碼 ”的效果WebAPP
- 自動化測試中的驗證碼處理
- 在 Laravel 中處理請求驗證的智慧方法Laravel
- winform中輸入資料的驗證ORM
- 自動化驗證碼登入如何實現?
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- 實現網頁中的搜尋輸入框效果 onfocuse onblur js 驗證手機號 座機區號網頁JS
- js中驗證輸入數字的方法JS
- lapis的輸入驗證API
- PHP--輸入驗證PHP
- 輸入表單驗證
- C# 在採集資料時的驗證與登入處理C#
- 如何在相親交友原始碼中實現正方形驗證碼輸入框?原始碼
- Vue使用antd中input元件去驗證輸入框輸入內容Vue元件
- 在Oracle中實現各種日期處理(1)Oracle
- 在Oracle中實現各種日期處理(2)Oracle
- canvas實現滑動驗證Canvas
- Struts2教程5:使用Validation框架驗證資料框架
- 怎樣在 Laravel 中處理前端認證Laravel前端
- Flutter 驗證碼輸入框Flutter
- 有關日期手工輸入驗證、日期彈出框、數值輸入驗證、必須輸入驗證等(共三個檔案)
- 手動驗證 TLS 證書TLS
- flutter 自定義驗證碼輸入框實現 verification_code_customFlutter
- Flutter 密碼輸入框 驗證碼輸入框Flutter密碼
- 在婚戀app原始碼開發中,如何實現滑動驗證碼元件?APP原始碼元件
- Android中實現簡訊驗證碼自動填入Android
- 在 SpringBoot 專案中簡單實現 JWT 驗證Spring BootJWT
- 純css實現輸入框placeholder動效及輸入校驗的示例程式碼CSS
- Django高階表單處理與驗證實戰Django
- python中快速驗證輸入的是否為迴文Python
- 基於Gin框架實現異常處理框架
- RHCE_LAB(2)SSH遠端登入自動驗證(不輸入使用者登入密碼)的實現薦密碼