如何告诉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";
}
}发布于 2013-06-06 10:24:53
试一试
<constant name="struts.convention.action.packages" value="fi.fpf.mvc.*"/>如果您正在使用约定插件,那么您应该遵循类和包名称约定。为什么不将基本包命名为"struts“或"struts2”,并使用默认的包定位器来定位。而且,类应该有与"Action"后缀相匹配的名称。
您可以告诉约定插件使用属性
struts.convention.exclude.packages忽略某些包。您还可以告诉插件使用不同的字符串来使用属性struts.convention.package.locators定位根包。最后,您可以告诉插件使用属性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"/>https://stackoverflow.com/questions/16959251
复制相似问题