如何使用 Struts 2 中的约定插件设置基础包来扫描子包中的操作?

问题描述 投票:0回答:1

如何告诉 Struts 2 约定插件扫描包的所有子包?我尝试过这个

<constant name="struts.convention.action.suffix" value="Controller" /> 
<constant name="struts.convention.package.locators.basePackage" value="fi.fpf.mvc" />

还有这个

<constant name="struts.convention.action.suffix" value="Controller" /> 
<constant name="struts.convention.package.locators.basePackage" value="fi.fpf.mvc.*" />

但它们不起作用。我的操作以

"Controller"
后缀结尾。有人知道怎么做吗

这是我的

struts.xml

<struts>
    
    <constant name="struts.convention.exclude.parentClassLoader" value="true"/>
    <constant name="struts.convention.action.fileProtocols" value="jar,vfs,vfsfile,vfszip"/>
<constant name="struts.convention.action.suffix" value="Controller" /> 
    <constant name="struts.convention.package.locators.basePackage" value="fi.fpf.mvc" />

    
    <package name="fpf-default" extends="struts-default">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
    </package>
</struts>

还有一个动作:

@Action("indexController")
public class IndexController extends ActionSupport{

    private static final long serialVersionUID = -2613425890762568273L;
        
    
    @Action(value="loadIndex", results={
            @Result(name="indexView", location = "indexView", type="tiles")
    })
    public String loadIndex() {
        return "indexView";     
    }    
}
java configuration struts2 struts2-convention-plugin
1个回答
3
投票

尝试

<constant name="struts.convention.action.packages" value="fi.fpf.mvc.*"/>

如果您使用约定插件,那么您应该遵循类和包名称约定。为什么不直接将基础包命名为“struts”或“struts2”并使用默认包定位器来定位它。此外,类的名称应与

"Action"
后缀匹配。

您可以使用以下命令告诉约定插件忽略某些包 属性

struts.convention.exclude.packages
。您还可以告诉 插件使用不同的字符串来定位根包使用 属性
struts.convention.package.locators
。最后,你可以告诉 使用属性搜索特定 root 包的插件
struts.convention.action.packages

请参阅文档

或者,您可以设置与此包以及该基础下的任何包匹配的基础包和定位器

<constant name="struts.convention.package.locators.basePackage" value="fi.fpf.mvc"/>
<constant name="struts.convention.package.locators" value="fi,fpf,mvc"/>
© www.soinside.com 2019 - 2024. All rights reserved.