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学习笔记是全面了解和掌握Struts2框架的宝贵资源,无论你是初学者还是有经验的开发者,都能从中受益。它会帮助你深入理解Struts2的工作原理,掌握其核心特性和最佳实践,从而提升你的...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
3. **配置文件**:在day01的学习中,你可能会接触到如何编写struts.xml文件,它是Struts2的主配置文件,用于配置Action、Action的输入输出结果、包(package)等。配置文件中的元素和属性将决定框架如何处理请求和...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,为开发者提供了...然而,随着Spring Boot等现代框架的兴起,Struts2的使用逐渐减少,但其设计理念和技术仍值得学习和借鉴。
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
9. **数据验证**:Struts 1提供了内置的验证框架,学习如何创建自定义验证规则。 10. **工具整合**:例如,Struts可以与Hibernate或iBatis等持久层框架集成,实现数据库操作。 此外,提供的《自动自发》.pdf文件...
Struts2是基于MVC设计模式的开源Web应用框架,它提供了强大的表单验证、国际化、拦截器等功能。Struts2通过Action类处理用户的请求,并将结果转发到相应的视图。其核心组件包括FilterDispatcher(或现在的...
### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
总的来说,Struts2作为一个强大的MVC框架,它提供了许多高级特性,如AOP编程、类型转换、灵活的视图技术和输入验证,使得开发者能够更高效地构建Java web应用程序。同时,它的无侵入式设计降低了框架与应用代码的...
这个"struts2学习笔记.rar"文件很可能包含了关于Struts2框架的详细教程和实践案例,对于学习和理解Struts2的核心概念和技术是非常有帮助的。 首先,Struts2框架的引入是为了克服早期Struts1框架的一些局限性,提供...
### Struts2框架知识点概述 #### 一、Struts2框架简介 Struts2是Apache组织维护的一个开源项目,它是Struts1的升级版本,在功能...通过学习这些知识点,开发者可以更好地利用Struts2框架开发高效稳定的Web应用程序。
Struts2 是一款流行的Java开源框架,用于构建企业级Web应用程序。它主要解决了传统Servlet API在处理请求转发和业务逻辑分离...学习并掌握Struts2,对于理解和实践SSH(Struts2、Spring、Hibernate)开源框架至关重要。