`
孤星119
  • 浏览: 124220 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2验证框架---struts2学习笔记3

 
阅读更多

struts2 客户端验证

一. 直接对属性进行验证.

1. jsp页面. 注意 若struts配置文件中 action 有namespace, form中 也必须写明namespace. 关键的代码如下

<s:form action="logonAction" namespace="/">
	<s:textfield name="username"></s:textfield>
	<s:password name="password"></s:password>
	<s:submit value="submit"></s:submit>
</s:form>

 

2.struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	 <package name="default" namespace="/" extends="struts-default">

        <action name="logonAction" class="LogonAction">
        	<result name="input">/logon.jsp </result>
        	<result name="success">/index.jsp </result>
        </action>

    </package>
</struts>

 

3.Action

public class LogonAction extends ActionSupport {
	private String username;
	private String password;
	
	@Override
	public String execute() throws Exception {

		return "success";
	}
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

	
}

 

4.最关键的 验证的xml文件. 文件命名必须是 <ActionName>-validation.xml, 且必须和Action放在一个目录下, 此处为 ActionName 为LogonAction,所以验证文件名为LogonAction-validation.xml

<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
  
<validators>   
    <field name="username">   
        <field-validator type="requiredstring">   
            <param name="trim">true</param>   
            <message>用户名不能为空</message>   
        </field-validator>   
    </field>   
    
     <field name="password">   
        <field-validator type="requiredstring">   
            <param name="trim">true</param>   
            <message>密码不能为空</message>   
        </field-validator>   
    </field>   
   
</validators>

 

 

二.struts2 visitor方式验证

 1.jsp文件  注意from内的属性名称. 如"user.username", user和Action内的名称要一样, username则要和User类中的属性名称完全一样

 

<%@ page language="java" contentType="text/html; charset=GBK"   pageEncoding="GBK"%>
    
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
	<s:form action="zhuceAction" namespace="/">
		<s:textfield name="user.username" label="用户名"></s:textfield>
		<s:password name="user.password" label="密码"></s:password>
		<s:textfield name="user.mobile" label="手机"></s:textfield>
		<s:submit value="submit"></s:submit>
	</s:form>
</body>
</html>

 

 

2.struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	 <package name="default" namespace="/" extends="struts-default">
		        
        <action name="zhuceAction" class="zhuce.ZhuceAction">
        	<result name="input">/zhuce.jsp </result>
        	<result name="success">/index.jsp </result>
        </action>
    </package>
</struts>

 

3.Action

public class ZhuceAction extends ActionSupport {
	private User user;

	@Override
	public String execute() throws Exception {
		
		return super.execute();
	}

	public User getUser() {
		return user;
	}

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

 

4.Action内的bean

public class User {
	private String username;
	private String password;
	private String mobile;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

}

 

5.ZhuceAction-validation.xml文件

  要求: 1).文件名  Action名-validation.xml,

          2).目录   和Action一样

  <!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
  
<validators>   
	<field name="user">	<!-- 此名字要和Action中的名字(以及页面内的名称一样) -->
		<field-validator type="visitor">
			<param name="context">userContext</param>	<!-- "userContext" 起什么名字都无所谓, 但要和后面的User-userContext-validation.xml保持一致-->
			<param name="appendPrefix">true</param>
			<message></message>
		</field-validator>
	</field>
</validators>

 

 

6.User-userContext-validation.xml 验证文件. 

要求: 1).文件名 Bean名-5中配置的context值-validation.xml

         2).目录 和Bean一个目录(此处要和User一个目录)

<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message>请输入用户名称</message>
        </field-validator>
    </field>
    <field name="password">
        <field-validator type="requiredstring">
        	<message>请输入登录密码</message>
        </field-validator>
    </field>
    
    <field name="mobile">   
        <field-validator type="requiredstring">   
            <param name="trim">true</param>   
            <message>手机号不能为空</message>   
        </field-validator>   
           
        <field-validator type="regex">   
            <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>   
            <message>手机号格式不正确</message>   
        </field-validator>           
    </field>   
</validators>

 

 

补充: 其实二中的 5,6 完全可以用ZhuceAction-validation.xml 替代, 文件内容是

<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
  
<validators>
	<!-- 原来也支持这种校验方式了 对象.属性 -->
	 <field name="user.username">
	  	<field-validator type="requiredstring">
	  	<message>用户名不能为空</message>
	  </field-validator>
	 </field>
	 
	<field name="user.password">
	  	<field-validator type="requiredstring">
	  	<message>密码不能为空</message>
	  </field-validator>
	 </field>
	 
    <field name="user.mobile">   
        <field-validator type="requiredstring">   
            <param name="trim">true</param>   
            <message>手机号不能为空</message>   
        </field-validator>   
           
        <field-validator type="regex">   
            <param name="expression"><![CDATA[^1[358]\d{9}$]]></param>   
            <message>手机号格式不正确</message>   
        </field-validator> 
    </field>
</validators>

 

 

 

分享到:
评论

相关推荐

    张龙圣思园struts2学习笔记word

    总的来说,张龙圣思园的Struts2学习笔记是全面了解和掌握Struts2框架的宝贵资源,无论你是初学者还是有经验的开发者,都能从中受益。它会帮助你深入理解Struts2的工作原理,掌握其核心特性和最佳实践,从而提升你的...

    struts2四天的学习笔记

    13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2框架2016版资料day01

    3. **配置文件**:在day01的学习中,你可能会接触到如何编写struts.xml文件,它是Struts2的主配置文件,用于配置Action、Action的输入输出结果、包(package)等。配置文件中的元素和属性将决定框架如何处理请求和...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    struts2学习笔记总结

    Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,为开发者提供了...然而,随着Spring Boot等现代框架的兴起,Struts2的使用逐渐减少,但其设计理念和技术仍值得学习和借鉴。

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    Struts-笔记-1

    9. **数据验证**:Struts 1提供了内置的验证框架,学习如何创建自定义验证规则。 10. **工具整合**:例如,Struts可以与Hibernate或iBatis等持久层框架集成,实现数据库操作。 此外,提供的《自动自发》.pdf文件...

    Struts2-Spring-Hibernate

    Struts2是基于MVC设计模式的开源Web应用框架,它提供了强大的表单验证、国际化、拦截器等功能。Struts2通过Action类处理用户的请求,并将结果转发到相应的视图。其核心组件包括FilterDispatcher(或现在的...

    传智播客struts2全程学习笔记

    ### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...

    struts2学习笔记

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    Struts2 - 学习笔记

    总的来说,Struts2作为一个强大的MVC框架,它提供了许多高级特性,如AOP编程、类型转换、灵活的视图技术和输入验证,使得开发者能够更高效地构建Java web应用程序。同时,它的无侵入式设计降低了框架与应用代码的...

    struts2学习笔记.rar

    这个"struts2学习笔记.rar"文件很可能包含了关于Struts2框架的详细教程和实践案例,对于学习和理解Struts2的核心概念和技术是非常有帮助的。 首先,Struts2框架的引入是为了克服早期Struts1框架的一些局限性,提供...

    框架笔记struts2

    ### Struts2框架知识点概述 #### 一、Struts2框架简介 Struts2是Apache组织维护的一个开源项目,它是Struts1的升级版本,在功能...通过学习这些知识点,开发者可以更好地利用Struts2框架开发高效稳定的Web应用程序。

    struts2课程笔记

    Struts2 是一款流行的Java开源框架,用于构建企业级Web应用程序。它主要解决了传统Servlet API在处理请求转发和业务逻辑分离...学习并掌握Struts2,对于理解和实践SSH(Struts2、Spring、Hibernate)开源框架至关重要。

Global site tag (gtag.js) - Google Analytics