Struts2框架核心概念与配置解析

4星 · 超过85%的资源 需积分: 9 24 下载量 187 浏览量 更新于2024-09-17 3 收藏 47KB DOC 举报
"Struts2基础面试题" Struts2是一个流行的Java Web框架,用于构建MVC(Model-View-Controller)架构的应用程序。在Struts2中,核心控制器不再是Struts1中的ActionServlet,而是StrutsPrepareAndExecuteFilter。这个过滤器负责处理请求,协调工作流程,但它并不是一个Servlet,而是实现了javax.servlet.Filter接口。 在部署Struts2时,我们需要在`web.xml`文件中配置Struts2的过滤器。通常,我们会创建一个名为`struts2-convention`的过滤器,将`filter-class`设置为`org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter`,然后在`filter-mapping`中指定URL模式。URL模式可以是`.action`,也可以是`/*`。`.action`模式会仅拦截以.action结尾的请求,而`/*`模式则会拦截所有请求。当设置为`/*`时,即使请求的是JSP页面,Struts2也会执行默认的拦截器栈。 关于Action的要求,Struts2中的Action并不强制要求继承特定的类或实现特定的接口。默认情况下,Action可以是任何实现了`com.opensymphony.xwork2.Action`接口的类,但通常我们推荐继承`ActionSupport`类,因为它提供了内置的错误处理和校验功能。默认处理请求的方法是`execute()`,方法原型为`String execute()`,返回值表示后续的视图或结果。 在Struts2中,表单数据不再像Struts1那样封装到ActionForm对象中,而是直接映射到Action的属性。Struts2使用OGNL(Object-Graph Navigation Language)来解析请求参数并自动赋值给Action的属性,无论这些属性是基本类型还是自定义类型。 对于非String类型的表单输入,Struts2提供了类型转换机制。有两种类型的转换:全局和局部。全局转换配置在`xwork-conversion.properties`文件中,而局部转换的配置文件位于每个Action类的同级目录下,命名为`{Action}-conversion.properties`。例如,如果Action类名为`UserAction`,则转换配置文件应命名为`UserAction-conversion.properties`。 输入校验在Struts2中可以通过继承`ActionSupport`类并覆盖`validate()`方法来实现。校验规则可以在`validate()`方法内编写,如检查用户名和密码不能为空。输入校验发生在类型转换之后,因为校验是基于Action属性的,这意味着表单数据已经被转换并赋值给Action的属性。 输入校验有两个执行阶段:一是发生在Action实例化和字段赋值之前,二是发生在Action转向JSP页面时,将Action属性转化为字符串显示。这样可以确保在展示错误消息或处理业务逻辑之前,输入数据的正确性。 Struts2的核心控制器、部署配置、Action设计、表单数据绑定、类型转换和输入校验等都是面试中常见的知识点,理解并掌握这些概念对于在Java Web开发领域的工作至关重要。