Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。本笔记将深入探讨Struts2的核心组件、配置以及它的一些关键特性。 让我们从`web.xml`配置文件开始。这个文件是Java web应用的部署描述符,它告诉服务器如何处理请求。在Struts2中,我们定义了一个名为`struts2`的过滤器,该过滤器负责拦截所有请求并将其路由到Struts2框架进行处理。过滤器类`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`执行预处理和执行操作,确保请求能够正确地与Struts2配置匹配。 ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 接着,我们来看Struts2自己的配置文件,通常命名为`struts.xml`。在这个文件中,你可以定义Action、包(package)、常量(constant)以及其他配置元素。Action是Struts2的核心,它是业务逻辑的载体,通常对应于一个Java类。包定义了Action的命名空间,并可以继承其他包,以便重用配置。例如: ```xml <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package> ``` 在这个例子中,我们定义了一个名为`default`的包,其默认Action是`index`。当用户访问根路径时,结果类型`redirectAction`将把用户重定向到`/example/HelloWorld.action`。 Struts2支持通过`<include>`标签来包含其他XML配置文件,这样可以更好地组织和管理配置。例如: ```xml <include file="example.xml"/> <include file="login.xml" /> ``` `struts.xml`中的常量配置,如`struts.devMode`,控制着Struts2的行为。`devMode`设为`true`时,将开启开发者模式,提供更详细的错误信息和额外的日志输出,便于调试。 此外,Struts2的Action可以使用OGNL(Object-Graph Navigation Language)表达式语言来访问和操作对象的属性。例如,可以在Action类的返回值中使用OGNL来指定结果页面: ```xml <action name="HelloWorld" class="com.example.HelloWorldAction"> <result name="success">/HelloWorld.jsp</result> </action> ``` 标签的使用是Struts2的另一个重要特性,它们允许开发者在JSP页面上轻松地创建动态内容。Struts2提供了丰富的标签库,如`s:textfield`用于创建表单字段,`s:submit`用于提交表单,`s:property`用于显示对象的属性等。 至于Struts2.0和Struts2.1的区别,虽然这里没有具体说明,但通常更新版本会修复已知问题,增加新功能,提高性能,并可能引入一些不向后兼容的变化。例如,从Struts2.0到Struts2.1可能会改进Action的生命周期,增强安全性,或者提供新的插件和配置选项。 Struts2提供了一种结构化的、可扩展的方式来构建Java web应用。通过理解并熟练掌握`web.xml`和`struts.xml`的配置、Action的定义、OGNL的使用以及标签库的运用,开发者可以高效地开发出健壮的MVC应用。不断学习和实践Struts2,将有助于提升你的Java web开发技能。
剩余15页未读,继续阅读
- 粉丝: 2
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助