首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JODD操作拦截器

JODD操作拦截器
EN

Stack Overflow用户
提问于 2016-03-26 10:45:40
回答 1查看 63关注 0票数 2

我不知道拦截器应该如何工作,因为我有一些带有@Intercepted注释的MadvocAction,但是拦截器堆栈似乎不能被访问。

代码语言:javascript
复制
@MadvocAction("index")
public class IndexAction extends AppAction {

@PetiteInject
private TemperatureService temperatureService;

@Action
@InterceptedBy(AppInterceptorStack.class)
public void view() {
    // body here ....
}

和拦截器堆栈:

代码语言:javascript
复制
package ro.videanuadrian.smartHome.web.interceptors;

import jodd.joy.madvoc.interceptor.DefaultInterceptorStack;
import jodd.madvoc.interceptor.ActionInterceptorStack;
import jodd.madvoc.interceptor.EchoInterceptor;

public class AppInterceptorStack extends ActionInterceptorStack {

public AppInterceptorStack() {

    super(
        AppAuthenticationInterceptor.class,
        EchoInterceptor.class,
        DefaultInterceptorStack.class
    );
}
}

有什么想法吗?

使用madvoc配置进行了更新:所以这是在我的web.xml中:

代码语言:javascript
复制
  <filter>
    <filter-name>madvoc</filter-name>
    <filter-class>jodd.madvoc.MadvocServletFilter</filter-class>        
    <init-param>
        <param-name>madvoc.webapp</param-name>
        <param-value>ro.videanuadrian.smartHome.config.SmartHomeWebApplication</param-value>
    </init-param>
     <init-param>
        <param-name>madvoc.params</param-name>
        <param-value>/madvoc.props</param-value>
    </init-param>         
</filter>  

下面是我的Madvoc it1s的初始化方式:

代码语言:javascript
复制
public class SmartHomeWebApplication extends PetiteWebApplication {

final SmartHomeServiceCore serviceCore;

public SmartHomeWebApplication() {
    serviceCore = new SmartHomeServiceCore();
    serviceCore.start();     
}


/**
 * Adds configurator to Madvoc container and invokes configuration.
 */
@Override
public void configure(MadvocConfigurator configurator) {

    if (configurator instanceof AutomagicMadvocConfigurator){
        AutomagicMadvocConfigurator amc = (AutomagicMadvocConfigurator) configurator;
        amc.setExcludeAllEntries(true);
        amc.setIncludedEntries("ro.videanuadrian.*");

        registerComponent(amc);
        amc.configure();
    }
}  

还有madvoc.props:

代码语言:javascript
复制
 madvocConfig.defaultInterceptors=ro.videanuadrian.smartHome.web.interceptors.AppInterceptorStack

 madvocConfig.fileUploadFactory.maxFileSize=-1  

在你回答之后,我评论了madvocConfig.defaultInterceptors,但结果是一样的。

EN

回答 1

Stack Overflow用户

发布于 2016-03-27 02:57:18

你在这里所做的一切看起来都很好。但是,批注可能不起作用有一个原因:您是否可能使用madvoc-routes.txt

正如here所解释的,定义操作和拦截器的另一种方法是将此配置文件与路由一起使用。如果启用此选项,您可能会对注释一无所知。

请检查这是不是真的,如果是:

  • 可以在configuration.

文件中定义

  • 截取程序,也可以删除routes

go仅注记拦截器

如果这不是一个案例,那么你会发现一些特定的东西(bug,换句话说;),尽管这个功能是非常基本的-如果是这样的话,请随时在github上触发问题:)

编辑

我已经制作了webapp example,它似乎模仿了你所做的一切。我的感知器会被调用。您能帮我查一下吗?

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

https://stackoverflow.com/questions/36231064

复制
相关文章

相似问题

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