2016-11-27 8 views
0

RequestToViewNameTranslatorをオーバーライドすることは、私が思ったよりも難しいようです。ほんの少しの例がオンラインです。Springが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

解決策は、ViewNameResolverクラスに@Component( "viewNameTranslator")を追加することです。また、ViewConfigurationのBean登録は無用であるため、削除することもできます。なぜ私は本当に理解できませんが、うまくいきます。誰かが説明を持っていれば、それを自由に書くことができます。

関連する問題