struts2中若要使用注解则需要引入包
struts2-convention-plugin
引入此包后可以使用struts的各种注解,但是此包有一些神坑需要注意,引入此包可以简化struts.xml的配置,其是基于约定优于配置的思想来简化struts配置的,其中一个重要的约定就是关于返回类型为type="velocity"或者type="freemarker"的.vm或.fm文件的位置问题,默认情况下其返回文件的相对路径是/WEB-INF/content,其默认约定配置如下
<constant name="struts.convention.result.path" value="/WEB-INF/content/" />
即如果返回的结果表达形式如下
@Result(name = "fail", location = "fail.vm", type="velocity")
则struts会去/WEB-INF/content/目录下寻找fail.vm文件而不是根目录,如果是"/fail.vm"则会直接去根目录下寻找文件,这与返回类型为type="dispatcher"的不同,dispatcher返回类型无论是fail.jsp还是/fail.jsp都会去根目录下寻找文件
另外: convention-plugin还有其他的约定配置,如查找Action类是在包名以action结尾的包中查找,若发现问题可考虑是否是此插件的约定配置问题。
神坑!切记!