Struts2 XML校验机制详解

需积分: 9 0 下载量 166 浏览量 更新于2024-08-18 收藏 4.09MB PPT 举报
"这篇文档主要讨论了Struts2框架中基于XML的校验机制特点,以及Struts2框架的优势和开发环境的搭建过程。" 在Struts2框架中,XML校验是一个重要的功能,它允许开发者定义数据验证规则来确保用户输入的有效性。当为一个特定的Action提供校验文件时,Struts2遵循特定的搜索顺序。首先,它会查找与Action类名匹配的`ActionClassName-validation.xml`文件,然后是`ActionClassName-ActionName-validation.xml`文件。这里的`ActionName`是具体执行的方法名。值得注意的是,Struts2会在找到所有校验文件后,将它们的规则合并,并一起应用到Action方法的校验中。如果有重复的校验规则,后面的文件中的规则将会覆盖前面文件中的规则。 例如,如果有一个`UserAction`类继承自`BaseAction`,在处理请求时,Struts2会按照以下顺序查找校验文件:`BaseAction-validation.xml`,`BaseAction-base-validation.xml`(如果存在),接着是`UserAction-validation.xml`和`UserAction-user-validation.xml`。最终,所有这些文件中的校验规则都会应用到`UserAction`的相应方法上。 Struts2框架本身具备许多优势,使得它在Web开发中备受青睐。首先,它的设计是无侵入式的,不依赖于Servlet API或Struts API,降低了耦合度。其次,Struts2引入了拦截器(Interceptor)机制,支持面向切面编程(AOP),可以方便地实现如权限控制等功能。此外,框架内置的类型转换器(Type Converter)能自动将请求参数转换为所需类型,简化了开发工作。Struts2还支持多种视图技术,如JSP、FreeMarker等,提供了灵活的表现层选择。对于输入校验,Struts2允许针对特定方法进行,提高了代码的可维护性。最后,它提供了一套完整的国际化资源文件管理,支持全局、包级和Action级别的资源管理。 在搭建Struts2开发环境时,开发者通常需要完成以下几个步骤:创建一个新的Web项目,将必要的Struts2库文件(jar)添加到项目的`lib`目录,编写`struts.xml`配置文件以定义Action和拦截器等设置,并在`web.xml`中配置Struts2的前端控制器(Front Controller)以启动框架。这些都是构建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 上传