覆盖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。
答案 0 :(得分:0)
解决方案是在ViewNameResolver类上添加@Component(" viewNameTranslator")。您也可以在ViewConfiguration中删除bean注册,因为它没用。我不明白为什么,但它确实有效。如果有人有解释,请随时写下。