`

使用strut2框架对数据进行验证

阅读更多

以登录为例介绍

1
先创建bean对象
2
创建对应的action
3
action的同级目录下创建验证的配置文件
.
4
创建jsp文件


备注:当一个Action中有多个业务方法时 : Action -映射名-validation.xml

如以EmployeeAction的添加方法为例。

添加员工信息的映射名。

<action name="addEmployee" class="EmployeeAction"

           method="addEmployee">

           <result name="success">

              /sm/employee/employeeSuccess.jsp

           </result>

           <result name="input">

              /sm/employee/addEmployee.jsp

           </result>

</action>

Xml验证文件的命名:EmployeeAction-addEmployee-validation.xml



具体实现:
package com.exeerp.sm.bean;

import java.io.Serializable;
import java.sql.Date;
import java.util.List;



/**
*
雇员bean

*/
public class Employee implements Serializable{

    /**
*
登陆用户名

*/
    private String userID;

    /**
*
登陆密码
*/
    private String pwd;

public String getUserID() {
return userID;
}

public void setUserID(String userID) {
this.userID = userID;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}
}
2.
对应的action  EmployeeAction.java
package com.exeerp.sm.ctrl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.exeerp.pub.action.BaseAction;
import com.exeerp.pub.exception.BizException;
import com.exeerp.pub.exception.DaoException;
import com.exeerp.pub.util.ExceptionMessage;
import com.exeerp.pub.util.Paginated;
import com.exeerp.sm.bean.Department;
import com.exeerp.sm.bean.Employee;
import com.exeerp.sm.biz.EmployeeManager;
import com.opensymphony.xwork2.ActionContext;

public class EmployeeAction extends BaseAction
{
static Logger logger = Logger.getLogger(EmployeeAction.class);
//
业务层EmployeeManager对象

private EmployeeManager employeeManager;
private Employee employee;

private Department department;
//
设置当前页
private int currentPage=1;

//
分页对象
private Paginated paging;
    /**
*
实现登陆
* @return
*/
public String loginAction(){
  try {
if(employeeManager.login(employee))    //
判断是否登录成功
{
Map map = ServletActionContext.getContext().getSession();  //
定义会话
// Map map = new HashMap();
map.put("UserID", employee.getUserID());        //
将对象放入会话中
System.out.println("dd="+map.get("UserID").toString());
ServletActionContext.getRequest().setAttribute("UserID",employee.getUserID());  //
将对象放入request
return SUCCESS;
}else{
return INPUT;
}
} catch (DaoException e) {
logger.error(e.getMessage());
this.setMessage(e.getMessage());
return INPUT;
} catch(Exception e){
logger.error(e.getMessage());
e.printStackTrace();
this.setMessage(e.getMessage());
return INPUT;
}
}
}
创建的验证文件 EmployeeAction-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="employee.userID"><!--
此处的值与页面的name值要对应
-->
     
        <field-validator type="requiredstring">
        <param name="trim">true</param>
          <message>
用户名不能为空
</message>
        </field-validator>
        <field-validator type="requiredstring">
        <param name="trim">true</param>
          <message>
用户名不能为空
</message>
        </field-validator>
    </field>
    <field name="employee.pwd">
        <field-validator type="requiredstring">
            <message>
密码不能为空
</message>
        </field-validator>
      <field-validator type="regex"><!--
使用正则表达式进行验证
-->
<param name="expression">\w{4,10}</param>
<message>
密码输入不合法</message>[微软用户1] 

</field-validator>
    </field>

 

<field name="repassword">
     <field-validator type="requiredstring">
       <param name="trim"></param>
       <message>
重复密码不能为空!
</message>
     </field-validator>
     <field-validator type="stringlength">
       <param name="minLength">6</param>
       <param name="maxLength">10</param>
       <message>
重复密码应在${minLength}${maxLength}之间
</message>
     </field-validator>
   </field>
  
   <field name="age">
     <field-validator type="int">
       <param name="min">1</param>
       <param name="max">150</param>
       <message>
年龄应该在${min}${max}之间
</message>
     </field-validator>
   </field>
  
   <field name="birthday">
     <field-validator type="date">
       <param name="min">2000-10-01</param>
       <param name="max">2008-10-01</param>
       <message>
生日应该在${min}${max}之间
</message>
     </field-validator>
   </field>
  
   <field name="graduation">
     <field-validator type="date">
       <param name="min">2008-01-01</param>
       <param name="max">2018-01-01</param>
       <message>
毕业时间应该在${min}${max}之间
</message>
     </field-validator>
   </field> 

</validators>
Jsp
页面:
Login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META content=sg803@citiz.net name=reply-to>
<META content=http://sg803.savalo.com / name=Identifier-URL>
<title>
登陆界面
</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
body {
font-size: 12px;
}

td {
font-size: 12px;
}

.input {
height: 15px;
width: 104px;
border: none;
font-size: 12px;
color: #603900;
}

.menu:link {
color: #990000;
text-decoration: none;
}

.menu:visited {
color: #990000;
text-decoration: none;
}

.menu:hover {
color: #ff0000;
text-decoration: none;
position: relative;
top: 1px;
}

.menu:active {
color: #990000;
text-decoration: none;
position: relative;
top: 1px;
}

.loginButton {
width: 57px;
height: 18px;
border: 0px;
}
</style>

</head>
<h1><font color="red">SSSSSSSSSSS:<s:fielderror/></font></h1
[微软用户2] 
>
<body bgcolor="#000000" leftmargin="0" topmargin="0" marginwidth="0"
marginheight="0">

<s:form action="loginAction" onsubmit="return validation()">
<table width="100%" height="100%" border="0" align="center"
cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<table width="797" height="457" border="0" align="center"
cellpadding="0" cellspacing="0" id="__01">
<tr>
<td colspan="8">
<img src="images/images/index_01.jpg" width="797" height="154"
alt="">
</td>
</tr>
<tr>
<td height="29" colspan="8"
background="images/images/index_02.jpg">
<table width="96%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td width="230" height="22" align="center" valign="bottom">
<script>
today=new Date();
var day;
var date;
var hello;
hour=today.getHours()
if(hour < 6)hello='
凌晨好! '
else if(hour < 9)hello='
早上好
! '
else if(hour < 12)hello='
上午好
! '
else if(hour < 14)hello='
中午好
! '
else if(hour < 17)hello='
下午好
! '
else if(hour < 19)hello='
傍晚好
! '
else if(hour < 22)hello='
晚上好
! '
else {hello='
半夜好
! '}
day=today.getDay()
if(day==0)day=' 
星期日
'
else if(day==1)day=' 
星期一
'
else if(day==2)day=' 
星期二
'
else if(day==3)day=' 
星期三
'
else if(day==4)day=' 
星期四
'
else if(day==5)day=' 
星期五
'
else if(day==6)day=' 
星期六
'
date=(today.getYear())+'
'+(today.getMonth()+1)+''+today.getDate()+'
';
document.write("<strong><font color=#ff6600>" +hello+"</font></strong>");
document.write('
今天是
 ')
document.write(date);
document.write(day);
</script>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td rowspan="7">
<img src="images/images/index_03.jpg" width="466" height="274"
alt="">
</td>
<td colspan="3" rowspan="5">
<img src="images/images/index_04.jpg" width="125" height="151" alt="">
</td>
<td colspan="4">
<img src="images/images/index_05.jpg" width="206" height="72"
alt="">
</td>
</tr>
<tr>
<td height="17" colspan="3"
background="images/images/index_06.jpg">
<input name="employee.userID" id="UserID" type="text"
class="input" value="
请输入用户名
">
</td>
<td rowspan="5">
<img src="images/images/index_07.jpg" width="101" height="97"
alt="">
</td>
</tr>
<tr>
<td colspan="3">
<img src="images/images/index_08.jpg" width="105" height="22"
alt="">
</td>
</tr>
<tr>
<td height="17" colspan="3"
background="images/images/index_09.jpg">
<input name="employee.pwd" id="Pwd" type="password"
class="input">
</td>
</tr>
<tr>
<td colspan="3">
<img src="images/images/index_10.jpg" width="105" height="23"
alt="">
</td>
</tr>
<tr>
<td>
<img src="images/images/index_11.jpg" width="65" height="18"
alt="">
</td>
<td background="images/images/index_12.jpg">
<input type="submit" name="" class="loginButton"
style="FILTER: alpha(opacity = 0)" />
</td>
<td colspan="2">
<img src="images/images/index_13.jpg" width="23" height="18"
alt="">
</td>
<td background="images/images/index_14.jpg">
<input type="button" name="" class="loginButton"
style="FILTER: alpha(opacity = 0)" onclick="clear()" />
</td>
<td>
<img src="images/images/index_15.jpg" width="28" height="18"
alt="">
</td>
</tr>
<tr>
<td colspan="7">
<img src="images/images/index_16.jpg" width="331" height="105"
alt="">
</td>
</tr>
<tr>
<td>
<img src="images/images/??????
分隔符
?.gif" width="466" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
?.gif" width="65" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
.gif" width="57" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
?.gif" width="3" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
.gif" width="20" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
?.gif" width="57" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
?.gif" width="28" height="1"
alt="">
</td>
<td>
<img src="images/images/??????
分隔符
.gif" width="101" height="1"
alt="">
</td>
</tr>
</table>
</td>
</tr>
</table>
</s:form>
</body>
</html>
<script>
    function addListener(element,e,fn)
    {   
    if(element.addEventListener){   
          element.addEventListener(e,fn,false);   
    } else {   
        element.attachEvent("on" + e,fn);   
    }   
}
var UserID = document.getElementById("UserID");
var Pwd = document.getElementById("Pwd");
addListener(UserID,"click",function(){
UserID.value = "";
})
        addListener(Pwd,"click",function(){
Pwd.value = "";
})
     
     
    function validation(){
        var userName = document.getElementById("UserID").value;
        var userPassword = document.getElementById("Pwd").value;
        var Name = userName.split("
请输入用户名
"); 
        var Password = userPassword.split("
请输入密码
");
        if(userName.length==0||Name[0]==""){
            alert('
用户名不能为空
');
            return false;
        }
        if(userPassword.length==0||Password.length>1){
            alert('
密码不能为空
');
            return false;
        }
      }
     
      function clear(){
            alert('dsd');
            var UserID = document.getElementById("UserID");
var Pwd = document.getElementById("Pwd");
UserID.value = "";
Pwd.value="";
      }
  </script>

 

 

 

 


 [微软用户1]正则表达式验证

 [微软用户2]显示错误信息

分享到:
评论

相关推荐

    struts2验证框架

    Struts2 验证框架是一个强大的验证机制,可以对用户输入的数据进行验证,以确保数据的正确性和一致性。Struts2 验证框架广泛应用于各种基于 Java 的 Web 应用程序,提高了应用程序的安全性和可靠性。

    struts2验证框架简单实例

    总的来说,Struts2的验证框架提供了一种方便、灵活的方式来管理Web应用的数据验证。通过深入学习和实践,你可以更好地掌握它,提升应用程序的质量和用户体验。在实际开发中,不断遇到并解决各种问题,将有助于你成为...

    struts2验证框架示例

    在Struts2中,验证框架是其核心特性之一,它允许开发者对用户输入的数据进行校验,确保数据的完整性和安全性。这个“struts2验证框架示例”提供了深入理解并实际操作Struts2验证功能的机会。 首先,让我们了解一下...

    Struts2框架源码

    当用户提交数据时,Struts2会自动进行验证并显示错误信息。 5. **Result(结果)**:Action执行后,根据业务逻辑,返回一个结果。结果可以是转发到另一个JSP页面,或者重定向到一个新的URL,也可以是其他类型的输出...

    Struts2框架及注释和用法

    在"使用文档.txt"中,你可能会找到更多关于如何配置Struts2、编写Action、设置拦截器、进行字段验证等的具体步骤和示例代码。而"Struts2"文件可能是包含示例项目或库的压缩包,供学习和参考。结合这两个资源,你可以...

    struts2框架JAR包

    Struts2框架是一款基于MVC(Model-View-Controller)设计模式的开源Java Web应用程序框架,它极大地简化了Java Servlet API的使用,提高了开发效率。这个压缩包包含了两个不同版本的Struts2框架:struts2.0.11和...

    Struts2框架做的用户登录的简单实例

    Struts2框架是一个基于Model-View-Controller(MVC)设计模式的开源Java Web应用程序框架。它简化了Java Servlet API的使用,提供了处理HTTP请求、转发控制和视图渲染的能力。在这个简单的用户登录实例中,我们主要...

    struts2验证框架简单示例

    在Struts2中,验证框架是处理用户输入验证的关键部分,它确保了从客户端接收到的数据的质量和准确性。本示例将深入探讨Struts2验证框架的基本用法,特别适合初学者理解和掌握。 ### 一、Struts2验证框架概述 ...

    Struts2 使用Validation框架验证数据(三十七)

    本篇文章将详细探讨Struts2如何使用Validation框架进行数据验证。 一、Struts2 Validation框架概述 Struts2的Validation框架是用于处理用户输入验证的一种机制。它允许开发者定义验证规则,这些规则会在用户提交...

    struts2连接mysql数据库登录验证程序

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了灵活的控制层,使得开发者能够构建结构清晰、可维护性强的Web应用程序。在这个“struts2连接mysql数据库登录验证程序”中,...

    struts2框架2016版资料day01

    5. **拦截器**:拦截器是Struts2的一大特色,它允许开发者在Action调用前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。在day01的课程中,你可能会学习如何定义和使用拦截器,以及如何在配置文件中配置...

    Hibernate+struts2框架

    总的来说,这个项目涵盖了Hibernate和Struts2的基础使用,包括数据库操作、用户认证、权限控制以及数据的展示。对于初学者,理解这些基本概念和操作流程,能够为深入学习Java Web开发打下坚实的基础。在实践中不断...

    Struts2中Validation数据验证框架教程

    在Struts2中,Validation框架是用于处理数据验证的重要组件,它允许开发者在用户输入提交到服务器之前或之后进行验证,确保数据的准确性和完整性。下面将详细解释Struts2中的Validation框架及其在前后台验证中的应用...

    struts2框架源码

    通过对Struts2源码的深入研究,开发者可以更好地理解其内部工作原理,从而优化应用性能,解决实际问题,以及设计出更符合框架精神的代码结构。同时,这也为面试中展示自己的技术深度和问题解决能力提供了有力的支持...

    使用Struts 2框架开发租房网站

    9. **数据校验**:Struts 2提供了丰富的数据校验机制,可以在Action类中定义注解进行字段级校验,也可以在struts.xml配置文件中进行全局校验。 10. **Ajax支持**:Struts 2可以通过JSON插件或Dojo插件支持Ajax请求...

    struts2框架验证.rar

    这个"struts2框架验证.rar"文件显然包含了使用Struts2进行验证的相关资料,适合在MyEclipse开发环境中使用。下面我们将深入探讨Struts2框架的验证机制及其相关知识点。 首先,Struts2框架提供了强大的表单验证功能...

    struts2框架jar包

    10. **数据校验**:Struts2的Validator框架允许开发者定义数据校验规则,自动对用户输入进行验证,提高应用的安全性。 综上所述,Struts2框架的jar包包含了运行和开发基于Struts2的应用所需的所有组件和库,如核心...

    struts2验证框架参数

    Struts2的核心特性之一就是其强大的验证机制,该机制允许开发者在请求到达控制器之前对用户输入进行检查,确保数据的完整性和正确性,从而避免潜在的运行时错误或安全漏洞。 ### Struts2验证框架的关键属性和语法 ...

    struts2框架基础jar包

    5. **验证框架**:`struts2-validation-plugin.jar`包含Struts2的内置验证框架,可以方便地对用户输入进行验证,并在验证失败时提供反馈。 6. **Tiles框架集成**:虽然Struts1时代就有的Tiles框架在Struts2中仍然...

Global site tag (gtag.js) - Google Analytics