`
ll_feng
  • 浏览: 387211 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2的框架验证

阅读更多
要运用struts2的验证框架。没有什么前提条件和配置。只需一个国际化资源文件和验证文件即可。
国际化文件就是struts.xml或struts.proterties文件中配置的,假如是在struts.xml中以常量来配置的。可以这样配置:
<constant name="struts.custom.i18n.resources" value="ApplicationResources,errors" />

那么所有classpath路径下的文件名为ApplicationResources.properties或是errors.properties文件都是struts可以使用的国际化资源文件.作为中文用户再添加一个ApplicationResources_zh_CN.properties即可

验证文件的文件名格式为:Xxx-validation.xml。直接放在action的目录下即可。我总结strus2的验证框架在应用中分为两类。一类是客户端验证,另一类是服务器端验证。由于客户端验证支持得不是很好。个人认为最好是客户端用js框架验证。服务端则交由struts好了。

struts的验证类型用多种。先举一个典型的对复合类型输入项的验证。情形是当acton里有一个复合类型属性,由于它不是简单的基本数据类型。则需在配置两个xml文件
action:

package net.apex.ssh.common.web.action;

import java.util.List;
import net.apex.ssh.common.model.User;
import net.apex.ssh.common.service.UserManager;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	private UserManager userManager;
	private User user;
	private List<User> users;
	private Integer id;
	
	
	//setter/getter methods
	public User getUser() {
		return user;
	}

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

	public List<User> getUsers() {
		return users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}
	
	/**
	 * 
	 */
	public String save(){
		userManager.saveUser(user);
		return SUCCESS;
	}
	
	public String delete(){
		if(id!=null){
			userManager.deleteUser(id);
		}
		return this.SUCCESS;
	}
	
	public String list(){
		users = userManager.getUsers();
		return this.SUCCESS;
	}
	
}


当UserAction.java中有一个User属性时。需在User.java同目录下有一个User-validation.xml
<!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="name">
		<field-validator type="requiredstring" short-circuit="true">
			<param name="trim">true</param>
			<message key="validate.user.name.notnull" />
		</field-validator>
	</field>

	<field name="age">
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">100</param>
			<message key="validate.user.age" />
		</field-validator>
	</field>
</validators>


另外,还得在UserAction.java同目录下有一个UserAction-validation.xml:
<!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="user">
		<field-validator type="visitor">
			<param name="context"></param>
			<param name="appendPrefix">true</param>
			<message>用户</message>
		</field-validator>
	</field>

</validators>

页面的表单代码如下:
<s:form action="saveUser" method="post">
  <s:textfield name="user.name" label="姓名:"></s:textfield>
  <s:textfield name="user.age" label="年龄:"></s:textfield>
  <s:radio name="user.sex" list="#{'1':'男','0':'女'}" label="性别:" value="'1'"></s:radio>
  <s:submit></s:submit>
</s:form>


很麻烦的是struts将类型类型转换的错误都缺省的加入到fieldErrors里。这样当我在年龄栏里输入字符串,页面就会出现"Invalid field value for field 'user.age'"而且这个还不受我的资源文件管理。从网上查询得知,原来
struts2框架自动生成一条错误信息,并将该错误信息放到addFieldError里面,这种默认的输出信息格式是在  xwork-2.0.x.jar中定义的.  com/opensymphony/xwork2/xwork-messages.properties文件中有一条xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".
这是一种全局的错误提示方式,整个系统中只要是字段类型转换错误都会这样提示,我们也可以改变这种输出格式,只要在全局的国际资源文件中重写xwork.default.invalid.fieldvalue就可以了

struts2的验证框架比struts1可是进步了不少。但感觉还不是很顺手。进一步学习中。。。
分享到:
评论

相关推荐

    struts2框架验证.rar

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

    SSH4(struts2框架验证)02

    SSH4(struts2框架验证)02SSH4(struts2框架验证)02

    SSH4(struts2框架验证)01

    SSH4(struts2框架验证)01SSH4(struts2框架验证)01SSH4(struts2框架验证)01

    struts2验证框架

    Struts2 验证框架详解 Struts2 验证框架是基于 Java 语言的 Web 应用程序框架,提供了一个强大的验证机制,以确保用户输入的数据满足业务逻辑的要求。在 Struts2 中,验证机制是通过 validator 来实现的,该机制...

    struts2验证框架简单实例

    在Struts2框架中,验证框架是其一个重要组成部分,用于确保输入数据的准确性和完整性,从而防止因无效数据导致的程序异常或错误。本实例将带你深入理解Struts2验证框架的使用,以及在实际操作中可能遇到的问题和解决...

    struts2框架2016版资料day01

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

    struts2验证框架示例

    这个“struts2验证框架示例”提供了深入理解并实际操作Struts2验证功能的机会。 首先,让我们了解一下Struts2验证框架的基本概念。验证框架基于两个主要组件:Validation拦截器和Action类中的验证配置。Validation...

    Struts2框架源码

    Struts2框架是Java Web开发中的一个流行框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化和可扩展的方式来构建应用程序。此压缩包文件包含的是Struts2的源码,特别适合初学者研究和学习...

    Struts2框架及注释和用法

    Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为构建可维护性高、结构清晰的Web应用程序提供了一种解决方案。这个框架旨在简化开发过程,提高代码的可测试性和可重用性。下面...

    struts2验证框架简单示例

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

    struts2框架JAR包

    在那个时期,Struts2已经整合了WebWork框架的核心功能,引入了Action、Result和Interceptor等概念,提供了强大的表单验证和国际化支持。这个版本的Struts2引入了OGNL(Object-Graph Navigation Language)表达式语言...

    struts2框架源码

    Struts2是一个强大的MVC(Model-View-Controller)框架,它是Apache软件基金会下的一个开源项目,被广泛应用于Java EE应用程序开发中。Struts2框架是Struts1的升级版本,它结合了WebWork框架的优点,提供了更高效、...

    Hibernate+struts2框架

    **Hibernate+Struts2框架详解** 在Web应用开发中,Hibernate和Struts2是两个非常重要的框架,它们分别处理持久层和控制层的任务。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作...

    Struts2框架搭建

    Struts2还有许多高级特性,如插件系统、国际化、数据验证、拦截器的自定义、以及与其他框架如Spring、Hibernate的集成。深入学习Struts2将有助于提升开发Web应用的效率和质量。对于初学者来说,了解和实践上述步骤是...

    struts2框架详解

    Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...

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

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

    struts2框架基础jar包

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

    struts2验证框架参数

    在深入探讨Struts2验证框架参数之前,我们首先简要回顾一下Struts2框架本身。Struts2是基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它提供了一种灵活的方式来构建可扩展的企业级Web应用程序。...

    Struts2 框架概述

    ### Struts2框架概述 #### 一、Struts2的历史背景与起源 Struts2作为一款备受关注的企业级Web开发框架,在Java Web开发领域占据着举足轻重的地位。尽管Struts2声称自身是一个全新的框架,但从其发展历程来看,这种...

    Struts2极速表单验证框架(注解)

    本篇将详细介绍Struts2的极速表单验证框架,特别是其注解方式的使用。 ### 1. 表单验证的重要性 在Web应用程序中,验证用户输入的数据是必不可少的,因为不正确的数据可能导致业务逻辑错误,甚至安全漏洞。Struts2...

Global site tag (gtag.js) - Google Analytics