`

Action基本的验证(校验规则文件)

阅读更多

客户端jsp请求
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'regist.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	<h3>请输入您的注册信息</h3>
  	<s:fielderror></s:fielderror>
    <form action="user/regist.action" method="post">
    	用户名:<input type="text" name="name"><br>
    	密&nbsp;&nbsp;码:<input type="password" name="pass"><br>
    	年&nbsp;&nbsp;龄:<input type="text" name="age"><br>
    	生&nbsp;&nbsp;日:<input type="text" name="birth"><br>
    	<input type="submit" value="注册">
    </form>
  </body>
</html>
 struts.xml的配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
    <package name="user" namespace="/user" extends="struts-default">
        
        <action name="*_*" class="com.lbx.action.{1}Action" method="{2}">
            <result name="success">/{1}_{2}_success.jsp</result>
            <result name="error">/{1}_{2}_error.jsp</result>
            <!-- {0}_success.jsp -->
        </action>
        
         <action name="regist" class="com.lbx.action.RegistAction">
            <result name="input">/regist.jsp</result>
            <result>/show.jsp</result>
        </action>
    </package>
    
</struts>
 找到相应的Action
package com.lbx.action;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class RegistAction extends ActionSupport{
	
	private String name;
	private String pass;
	private int age;
	private Date birth;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Date getBirth() {
		return birth;
	}
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	/*@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return SUCCESS;
	}*/
	
}
 对相应的Action添加验证(Action名字-validation.xml规定的,所以RegistAction的验证文件就是RegistAction-validation.xml)通过这样的处理后就会自动进行验证
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC
	"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
	"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<!-- 校验文件的根元素 -->
<validators>
	<!-- 校验Action的name属性 -->
	<field name="name">
		<!-- 指定name属性必须满足必填规则 -->
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>必须输入名字</message>
		</field-validator>
		<!-- 指定name属性必须匹配正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<message>您输入的用户名只能是字母和数字
				,且长度必须在4到25之间</message>
		</field-validator>
	</field>
	
	<!-- 校验Action的pass属性 -->
	<field name="pass">
		<!-- 指定pass属性必须满足必填规则 -->
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>必须输入密码</message>
		</field-validator>
		<!-- 指定pass属性必须满足匹配指定的正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<message>您输入的密码只能是字母和数字
				,且长度必须在4到25之间</message>
		</field-validator>
	</field>
	
	<!-- 指定age属性必须在指定范围内-->
	<field name="age">
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">150</param>
			<message>年龄必须在1到150之间</message>
		</field-validator>
	</field>
	
	<!-- 指定birth属性必须在指定范围内-->
	<field name="birth">
		<field-validator type="date">
			<!-- 下面指定日期字符串时,必须使用本Locale的日期格式 -->
			<param name="min">1900-01-01</param>
			<param name="max">2050-02-21</param>
			<message>生日必须在${min}到${max}之间</message>
		</field-validator>
	</field>
</validators>
 一旦全部验证通过返回success后就到show.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'show.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <h3>校验成功</h3>
	用户名:<s:property value="name"/><br />
	密码:<s:property value="pass"/><br />
	年龄:<s:property value="age"/><br />
	生日:<s:property value="birth"/><br />
  </body>
</html>
 

分享到:
评论

相关推荐

    struts2 基本校验(配置文件形式)

    在这个文件中,我们将定义针对Action类中各字段的校验规则。 2. **定义验证规则**:在配置文件中,我们使用`field`元素定义每个字段的校验规则。例如,对于一个`username`字段,我们可以设置非空、长度限制等规则:...

    struts2 对action中的所有方法进行校验

    校验规则通常定义在XML配置文件或注解中,这样可以将业务逻辑与表现层分离,提高代码可维护性。 1. XML配置文件校验: 在struts.xml或类似的配置文件中,我们可以为每个Action定义一个对应的validate()方法。这个...

    Struts2 校验器

    3. **配置校验规则**:Struts2的校验规则可以通过XML或注解方式定义。XML方式通常在struts.xml或相应的action类配置文件中定义,而注解方式则直接在Action类的属性上标注,例如使用`@RequiredString`、`@Size`等。 ...

    19对Action中所有方法进行输入校验.zip

    4. **使用第三方验证库**:如Hibernate Validator,它提供了丰富的验证注解和强大的校验规则,可以与Struts2很好地集成。 5. **编程式验证**:在每个Action类的方法内部,手动进行输入校验,虽然这种方式灵活性高,...

    struts2笔记之校验表单信息

    **一、校验规则文件** 在Action类对应的名字加上"-validation.xml"的文件中定义校验规则。XML文件头需指定DTD信息,然后在元素内定义校验规则。校验规则分为字段校验配置和非字段校验配置两种风格。字段校验配置...

    J2EE基础的校验demo

    在Struts2中,Action类可以通过注解或者配置文件来定义校验规则。 2. **Validator拦截器**:Struts2框架使用拦截器来执行预定义的任务,包括数据校验。当Action方法被调用前,Validator拦截器会检查Action类的属性...

    在struts2里,完成登录页面,使用框架进行数据校验,用户名必填,密码必填且长度大于6

    在`LoginAction`类中,对username和password属性添加相应的校验规则。 ```java @FieldValidator shortMessages = "true" public class LoginAction extends ActionSupport { @NotEmpty(message = "用户名不能为空...

    struts2中的输入校验

    - **全局校验配置文件**:全局校验配置文件(如`ActionName-validation.xml`)位于Action类同级目录下,对Action类的所有方法进行校验。每个需要校验的Action类都有自己的配置文件。 - **XML配置结构**:XML配置...

    Struts2输入校验总结

    综上所述,Struts2的输入校验机制不仅支持基本的手动校验,还提供了高度可配置和扩展的验证框架,使得开发者能够根据应用的具体需求,灵活地实现各种校验逻辑,从而提升应用程序的质量和用户体验。

    struts2官方例子7-表单验证 xml形式的验证

    在这个文件中,我们可以定义一系列验证规则,对每个字段进行详细的校验。 在`UserAction-validation.xml`中,我们将定义如下的结构: ```xml 用户名不能为空 &lt;param name="min"&gt;6 &lt;param name="max"&gt;...

    Struts2校验框架应用

    校验规则通常包含在Action类的属性上,通过注解或XML配置文件来指定。 **2. 校验框架的组成** - **Action类与属性**: Action类是业务逻辑的载体,其属性对应用户表单中的字段,这些属性需要进行校验。 - **校验...

    Struts2的校验框架

    当用户提交表单时,Struts2会自动调用相应的校验规则,并根据验证结果更新Action上下文,以便在后续处理中使用。 Struts2的校验框架主要包含以下几个核心组件: 1. **Validation拦截器**:这是Struts2校验框架的...

    struts2实现服务器端校验示例

    首先,Struts2的校验框架是基于Action类的,每个Action类都可以关联一个或多个校验规则文件,通常是XML格式的,定义了字段级别的验证规则。例如,对于一个注册表单,你可能需要验证用户名的长度、密码的复杂性等。在...

    struts2输入校验深入总结

    在struts.xml文件中配置`&lt;validators&gt;`元素,然后在Action类中创建一个ValidatorForm对象,将表单字段映射到该对象的属性,即可应用预定义的校验规则。 五、自定义校验器 除了使用内置的校验规则外,Struts2还支持...

    Struts2的输入校验

    在XML文件中,可以定义每个字段的校验规则,如`requiredstring`校验器用于检查字段是否为空,`regex`校验器用于验证字段是否符合特定的正则表达式。 通过这种方式,开发者可以轻松地在Struts2中实现输入校验,既...

    基于XML配置方式实现对指定action方法校验.rar

    虽然具体内容无法在这里提供,但通常这样的博客文章会解释如何在XML配置文件中定义验证规则,比如使用Spring的`&lt;bean&gt;`标签创建Action类实例,并使用`&lt;property&gt;`标签设置属性,包括校验规则。此外,它可能还会介绍...

    struts2校验器与校验框架精彩学习笔记

    1. **配置校验规则**:在struts.xml或相应的Action配置文件中,定义校验规则。例如,为一个字段指定required="true"表示该字段不能为空,maxLength="10"表示字段长度不能超过10个字符。 2. **生成校验对象**:当...

    Struts2自定义校验框架

    Struts2提供了内置的验证框架,允许开发者自定义校验规则,以满足特定业务需求。下面将详细介绍Struts2自定义校验框架的相关知识点。 1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,...

Global site tag (gtag.js) - Google Analytics