相信很多的人都用过struts2的配置文件验证,说实话,这个服务端校验确实比较好,可以有效防止一些错误数据提交到数据库。这里要说的是当类型转换失败时,struts默认的提示信息就不那么友好了,所以我们需要重新为它添加国际化资源,即:
invalid.fieldvalue.model.serverId=设备ID必须为数值类型
前面这一串“invalid.fieldvalue”是固定的,后面的就是你的xml中指定的校验字段名称,我的校验xml是:
<field name="model.serverId"> <field-validator type="required" short-circuit="true"> <param name="trim">true</param> --> <message key="messages.validate.server.serverId.requied"></message> </field-validator> <field-validator type="int" short-circuit="true"> <param name="min">1</param> --> <param name="max">9999999</param> --> <message key="messages.validate.server.serverId.range"></message> --> </field-validator> --> </field>
加上以上友好的国家化资源信息后,当转型失败后,后台返回的错误信息就是 "设备ID必须为数值类型," 加上 “messages.validate.server.serverId.requied” 对应的国家化资源信息了;嗯???
等等,什么情况?信息提示是没有问题了,但是进入了第一个验证了,是不能为空的验证。查看strut-default.xml发现struts框架本身的机制就是,先转型,转型失败后加载错误信息,然后继续验证。
这里问题就来了,我不想转型失败后还傻不拉几的去验证,有没有可能转型失败后不去验证呢?不可以,这是struts的机制决定的。
所以我想到了在xml中接收转型失败后的错误信息,并给出相应的例子提示信息,即:
<field name="model.serverId"> <field-validator type="conversion" short-circuit="true"> <message key="messages.numerical.examples"></message> </field-validator> <field-validator type="required" short-circuit="true"> <param name="trim">true</param> <message key="messages.validate.server.serverId.requied"></message> </field-validator> --> <field-validator type="int" short-circuit="true"> <param name="min">1</param> <param name="max">9999999</param> <message key="messages.validate.server.serverId.range"></message> </field-validator> </field> -->
国家化资源信息中加入:
messages.numerical.examples=如:0,11,202
相关推荐
### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...
3. **配置校验规则**:Struts2的校验规则可以通过XML或注解方式定义。XML方式通常在struts.xml或相应的action类配置文件中定义,而注解方式则直接在Action类的属性上标注,例如使用`@RequiredString`、`@Size`等。 ...
总结起来,Struts2的XML表单验证是通过创建XML文件定义验证规则,然后在Action类中处理数据,通过框架自动进行验证并返回错误信息。这种方式使得验证逻辑与业务逻辑分离,提高了代码的可维护性和复用性。对于大型...
本文将深入探讨Struts2中的输入校验机制,以及如何对指定方法进行输入校验。 在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但...
Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex
Struts2集成了Apache Commons Validator,可以通过配置XML文件定义校验规则。在struts.xml文件中配置`<validators>`元素,然后在Action类中创建一个ValidatorForm对象,将表单字段映射到该对象的属性,即可应用预...
"Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...
3. 配置文件校验:除了代码实现外,Struts2还支持基于XML的配置文件进行校验。在struts.xml或相应的action配置中,可以定义field和global validation规则,这种方式更加灵活且易于维护。 接下来,我们谈谈Struts2的...
在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
Struts2提供了内置的验证框架,允许开发者自定义校验规则,以满足特定业务需求。下面将详细介绍Struts2自定义校验框架的相关知识点。 1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,...
在Struts2中,`struts.xml`是核心配置文件,它定义了应用的各个组件,如动作(Actions)、结果(Results)、拦截器(Interceptors)等。本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便...
开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2的校验有哪几种形式,具体的 校验格式,有多种,我就不一一介绍了,大家可以自已研究下。 把刚在LoginAction 里加的validate()去掉! 就OK了,...
`struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...
struts.xml文件配置解释,对action配置进行说明
Struts2集成Apache Commons Validator,允许开发者创建XML配置文件来定义校验规则。在这些XML文件中,你可以设置字段的校验规则,如长度、格式等。然后在Action类中声明对应的ActionForm,Struts2会基于这些规则进行...
Struts2是一个强大的MVC框架,它以XML配置文件为核心,允许开发者定义应用程序的行为和结构。在Struts2中,XML配置文件(通常命名为struts.xml)是整个框架的基石,它负责设置Action、拦截器、结果页面以及其他关键...