Spring覆盖RequestToViewNameTranslator

时间:2016-11-27 02:56:57

标签: java spring configuration

覆盖RequestToViewNameTranslator似乎比我想象的更难。网上只有几个例子。

公式非常简单,在@Configuration中注册一个bean,bean必须实现接口RequestToViewNameTranslator。然后,重写方法getViewName。

当我在ViewConfiguration类中注册bean时,我可以破解。

@EnableWebMvc
@Configuration
public class ViewConfiguration {

    @Bean
    public ViewNameResolver viewNameResolver() {
        return new ViewNameResolver();
    }
}

但是从不调用方法getViewName。

public class ViewNameResolver implements RequestToViewNameTranslator {

    @Override
    public String getViewName(HttpServletRequest request) throws Exception {

        return "test";
    }
}

也许有人可以指出为什么从不调用方法getViewName。

1 个答案:

答案 0 :(得分:0)

解决方案是在ViewNameResolver类上添加@Component(" viewNameTranslator")。您也可以在ViewConfiguration中删除bean注册,因为它没用。我不明白为什么,但它确实有效。如果有人有解释,请随时写下。