gpt4 book ai didi

java - struts.xml 标签结果类型的基于注释的配置替代方案

转载 作者:行者123 更新时间:2023-11-30 06:39:40 25 4
gpt4 key购买 nike

我正在尝试创建具有通用页眉、页脚和正文的新 Struts 2 应用程序(基于注释的配置),其中正文在菜单单击时发生变化。

所以我引用了这个链接,上面写着If you are using annotations alone and no struts.xml, then you have to create a minimal one for this because there's no annotation available to define a custom result type .

我还需要为 result-type 标记创建 struts.xml 吗?

我尝试使用 Tiles 3 并收到此错误:

Jun 17, 2017 3:26:20 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
Unable to load configuration. - [unknown location]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:499)
at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:75)
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:63)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:906)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:486)
... 14 more
Caused by: The Result type [tiles] which is defined in the Result annotation on the class [class org.iibf.crf.action.LoginAction] or determined by the file extension or is the default result type for the PackageConfig of the action, could not be found as a result-type defined for the Struts/XWork package [org.iibf.crf.action#convention-default#/] - [unknown location]
at org.apache.struts2.convention.DefaultResultMapBuilder.createResultConfig(DefaultResultMapBuilder.java:443)
at org.apache.struts2.convention.DefaultResultMapBuilder.createFromAnnotations(DefaultResultMapBuilder.java:414)
at org.apache.struts2.convention.DefaultResultMapBuilder.createResultsFromAnnotations(DefaultResultMapBuilder.java:222)
at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:192)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:948)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:700)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:336)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at com.

最佳答案

默认父包应该不是 convention-default 而是tiles-default。如果您将tiles插件添加到类路径并将@ParentPackage("tiles-default")注释设置为操作类,您可以区分这一点。您可以将此注释放在保留策略所应用的类或包上。

另请注意,您可以全局定义父包,而不仅仅是上一个示例中的自定义操作类。也就是说,如果您的配置中有一个扩展 tiles-default 的包 default 并且您想全局配置它,请使用

<constant name="struts.convention.default.parent.package" value="default"/>

关于java - struts.xml 标签结果类型的基于注释的配置替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com