JavaWeb框架_Struts2_(六)----->Struts2的输入校验

1. 输入校验章节目录

 

输入校验概述

客户端校验

服务器端校验

手动编程校验

重写validate方法

重写validateXxx()方法

输入校验流程

校验框架校验

Struts2 内置的校验器

常用的内置校验器的配置

 

2. 详细内容

 

2.1 输入校验概述

 

  输入校验分为客户端校验和服务器端校验,客户端校验主要是过滤正常用户的误操作,主要通过JavaScript代码完成;服务器端校验是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。

 

2.1.1 客户端校验

 

  大多数情况下,使用JavaScript进行客户端校验的步骤如下:

编写校验函数;

在提交表单的事件中调用校验函数;

根据校验函数来判断是否进行表单提交;

  下面通过一个简单的示例讲解使用JavaScript进行客户端校验的方法,具体代码如下所示:

<%-- Created by IntelliJ IDEA. User: mairr Date: 17-12-5 Time: 下午10:07 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page language = "java" import = "java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>注册界面</title> <script type="text/javascript" > // 去掉前后的空格 function deltrim(x) { while (x.length > 0 && x.charAt(0) == ' ') x = x.substring(1, x.length); while (x.length > 0 && x.charAt(x.length - 1) == ' ') x = x.substring(0, x.length - 1); return x; } // 非空验证 function isNULL(elem,message){ var va = deltrim(elem.value); if(va == " ") { alert(message); elem.focus(); return false; } return true; } // 验证帐号,帐号只能是小写字母数字,并且只能以字母开头 function validateId(){ var first = document.forms[0].id.value.charAt(0); var exp = /^[a-z0-9]+$/; if(isNULL(document.forms[0].id,"请输入帐号")){ // 验证非空 // 验证首字符 if((first >= 'a' && first <= 'z') || (first >= 'A' && first <= 'Z')){} else{ alert("帐号首字符必须是字母!"); document.forms[0].id.focus(); return false; } if(!exp.test(document.forms[0].id.value)){ alert("帐号必须是字母或者数字!"); document.forms[0].id.focus(); return false; } return true; } else{ return false; } } // 验证密码,密码要在8位以上,且需要有字母或者数字之外的字符 function validatepwd(){ var exp = /^[a-z0-9]+$/; if(isNULL(document.forms[0].pwd," 请输入密码")){ //验证非空 if(document.forms[0].pwd.value.length <= 8){ alert("密码大于8位"); document.forms[0].pwd.focus(); return false; }else{ if(exp.test(document.forms[0].pwd.value)){ alert("密码要有字母和数字之外的字符!"); document.forms[0].pwd.focus(); return false; } } }else{ return false; } if(document.forms[0].pwd.value != document.forms[0].repwd.value) { alert("两次密码不一样!"); document.forms[0].pwd.focus(); return false; } return true; } // 验证邮箱,右边为六位数子 function checkcode() { var exp = /^[0-9]+$/; if(isNULL(document.forms[0].ecode,"请输入邮编")){ // 验证非空 if(document.forms[0].ecode.value.length != 6){ alert("邮编为6位"); document.forms[0].ecode.focus(); return false; }else{ if(!exp.test(document.forms[0].ecode.value)){ alert("邮编为数字"); document.forms[0].ecode.focus(); return false; } } return true; }else{ return false; } } // 验证E-mail的基本格式 function checkEmail(){ var exp = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; if(isNULL(document.forms[0].email,"请输入Email")){ // 验证非空 if(!exp.test(document.forms[0].email.value)){ alert("Email格式错误"); document.forms[0].email.focus(); return false; } return true; }else{ return false; } } // 提交按钮 function gogo(){ if(validateId() && validatepwd() && checkcode() && checkEmail()){ document.forms[0].submit(); return true; } return false; } </script> </head>
<body> <s:form action ="" theme="simple"> <table> <tr> <td>登录帐号</td> <td><s:textfield/></td> </tr> <tr> <td>密码</td> <td><s:password/></td> </tr> <tr> <td>确认密码</td> <td><s:password/></td> </tr> <tr> <td>邮编</td> <td><s:textfield name = "ecode"/></td> </tr> <tr> <td>Mail</td> <td><s:textfield name = "email"/></td> </tr> <tr> <td><input type="button" value="提交" /></td> <td><s:reset value = "重置"/></td> </tr> </table> </s:form> </body>

</html>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyysxp.html