Struts2 Convention插件注解使用详解

需积分: 9 15 下载量 35 浏览量 更新于2024-09-30 收藏 51KB DOC 举报
Struts2从版本2.1开始引入了Annotation Convention插件,这是一个重要的转型,因为它摒弃了传统的Codebehind配置方式,转向基于注解的零配置模式。Annotation Convention不再依赖于struts.xml文件,而是通过Java注解和约定来自动配置Action。 首先,要在项目中使用Annotation Convention,你需要将struts-Convention-plugin-2.1.6.jar文件添加到WEB-INF/lib目录下,确保插件能够被应用程序访问。Convention插件的核心功能是自动扫描action、actions、struts和struts2这四个默认包,以及开发者自定义的包,寻找符合特定条件的Java类。 1. 类型匹配:Convention插件将两种类型的Java类识别为Action: - 实现com.opensymphony.xwork2.Action接口的类 - 类名以Action结尾的类,例如com.fun.action.LoginAction 2. 自动映射:默认情况下,如LoginAction这样的类会被映射到相应的URL路径。然而,可以通过以下两个常量进行定制: - struts.Convention.exclude.packages: 避免扫描指定的包,避免其中的类自动映射为Action。 - struts.convention.package.locators: 设置Action查找的根包,改变默认的路径映射。例如,如果设置为"fore",LoginAction会映射到"/login"。 3. 动态包搜索:struts.convention.action.packages常量用于指定额外的包,这些包中的Action类也会被 Convention 插件扫描。这允许开发者根据需求扩展Action的查找范围。 在使用这些配置时,开发者需要注意两个关键常量的微妙作用,错误的设置可能导致意料之外的行为。例如,不正确的exclude.packages可能会阻止某些预期的Action被映射,而package.locators和action.packages的设置则可能影响URL到Action的映射逻辑。 Struts2 Annotation Convention提供了更为灵活且简洁的Action配置方式,通过注解和约定,减少了手动配置的工作量,但同时也需要开发者对插件的工作原理有深入理解,以便充分利用其优势并避免潜在问题。