首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在木兰CMS中注册自定义VirtualUriMapper

在木兰CMS中注册自定义VirtualUriMapper
EN

Stack Overflow用户
提问于 2021-05-27 00:35:09
回答 1查看 282关注 0票数 0

我尝试为Magnolia版本6.1.3实现一个定制的VirtualUriMapping (RegexpVirtualUriMapping,但带有本地化)。不幸的是,我不能在轻量级模块(yaml定义)中使用我的类.我的类(I18nVirtualUriMapping.java)放在一个模块中,这是我的自定义webapp (magnolia community-webapp原型)的一个依赖项。我如何注册我的VirtualUriMapper?

这是自定义类I18nVirtualUriMapping.java (缩写):

代码语言:javascript
复制
package my.magnolia.module.mapping;

import info.magnolia.virtualuri.mapping.DefaultVirtualUriMapping;

public class I18nVirtualUriMapping extends DefaultVirtualUriMapping {
    
}

光模块news-ROOT.yaml中虚拟uri映射的定义

代码语言:javascript
复制
class: my.magnolia.module.mapping.I18nVirtualUriMapping
fromUri: /news(.*).html
toUri: forward:/News-Detail.html?news=$1

定义光模块中的映射,我得到这个错误

代码语言:javascript
复制
2021-05-27 02:10:20,556 WARN  agnolia.transformer.ClassPropertyBasedTypeResolver: Encountered the 'class' property but failed to resolved the type from its value: [my.magnolia.module.mapping.I18nVirtualUriMapping]
java.lang.ClassNotFoundException: my.magnolia.module.mapping.I18nVirtualUriMapping
        at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_131]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_131]
...
EN

回答 1

Stack Overflow用户

发布于 2021-05-27 18:40:50

经过长时间的搜索,我自己找到了解决方案。它是关于依赖注入(https://docs.magnolia-cms.com/product-docs/Modules/Dependency-injection-and-inversion-of-control.html)的。

代码语言:javascript
复制
public class I18nVirtualUriMapping extends DefaultVirtualUriMapping {
    private static final Logger log = LoggerFactory.getLogger(I18nVirtualUriMapping.class);

    private final I18nVirtualMappingModule module;

    @Inject
    public I18nVirtualUriMapping(final I18nVirtualMappingModule module) {
        this.module = module;
    }

    //... 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67714269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档