关于struts2 的Convention-plugin的一些坑

本文介绍在Struts2框架中使用注解时,引入struts2-convention-plugin包的重要性及其潜在陷阱。详细解释了如何配置返回类型为velocity或freemarker的视图文件位置,以及该插件对Action类查找的约定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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结尾的包中查找,若发现问题可考虑是否是此插件的约定配置问题。
神坑!切记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值