Struts2 校验器详解与框架优势

需积分: 9 3 下载量 12 浏览量 更新于2024-08-18 收藏 365KB PPT 举报
"这篇教程介绍了Struts2框架中内置的校验器,这些校验器用于数据验证,确保用户输入符合特定的规则。Struts2是基于MVC模式的Web框架,相较于Struts1,它具有无侵入式设计、拦截器支持AOP编程、类型转换器、多视图技术支持以及更灵活的输入校验等特点。" 在Struts2中,数据校验是其强大的特性之一,它提供了一系列预定义的校验器来确保数据的有效性。以下是详细说明: 1. **required**: 这个校验器强制要求字段的值不能为空,如果为null则校验失败。 2. **requiredstring**: 除了要求字段值不能为null,还要求字符串长度大于0,并且默认会去除前后空格。 3. **stringlength**: 用于限制字符串的长度,`minLength`和`maxLength`参数分别指定最小和最大长度,可选的`trim`参数用于去除前后空格。 4. **regex**: 此校验器使用正则表达式来验证字段,`expression`参数定义正则,`caseSensitive`参数控制是否区分大小写。 5. **int**: 针对整数的校验,通过`min`和`max`参数设定数值范围。 6. **double**: 对双精度浮点数的校验,同样设置最小值`min`和最大值`max`。 7. **fieldexpression**: 使用OGNL表达式来判断字段值是否满足特定条件,表达式基于ValueStack执行。 8. **email**: 验证字段是否为有效的电子邮件地址,只有当字段非空时才执行校验。 9. **url**: 检查字段是否为合法的URL地址,非空字段才进行校验。 10. **date**: 对日期进行校验,使用`min`和`max`设定有效日期范围。 11. **conversion**: 当类型转换失败时,此校验器提供自定义错误信息。 12. **visitor**: 用于复合属性的校验,通过指定校验文件校验对象的复杂属性。 13. **expression**: OGNL表达式校验器,基于ValueStack评估表达式,返回true时校验通过,不适用于字段级配置。 Struts2的优势在于它的设计模式和特性,如无侵入式设计使得应用与Servlet API和Struts API解耦,使代码更易于维护。拦截器支持AOP编程,可以方便地实现如权限控制等功能。类型转换器允许将特殊请求参数自动转换为所需类型,简化了处理过程。此外,Struts2支持JSP、FreeMarker、Velocity等多种视图技术,提供了灵活的选择。输入校验可以根据方法进行,增强了校验的针对性。最后,Struts2提供了全球化资源文件管理,可以在全局、包或Action级别进行配置。 搭建Struts2开发环境通常包括获取所需的jar文件,配置Struts2的XML文件以及在`web.xml`中配置Struts2的启动参数。这使得开发者能够快速开始Struts2应用的开发工作。

我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>

2023-05-30 上传