2016-08-25 7 views
0

私はThymeleafビューリゾルバを持つSpring MVCアプリケーションを持っています。ここに私の設定クラスです:1つのSpring MVCアプリケーション内のThymeleafとJSPリゾルバ

public class WebConfig extends WebMvcConfigurerAdapter { 

    @Bean 
    public SpringResourceTemplateResolver springResourceTemplateResolver() { 
     return new SpringResourceTemplateResolver(); 
    } 

    @Bean 
    public ViewResolver viewResolver() { 
     ThymeleafViewResolver resolver = new ThymeleafViewResolver(); 
     resolver.setTemplateEngine(templateEngine()); 
     resolver.setCharacterEncoding("UTF-8"); 
     return resolver; 
    } 

    @Bean 
    public TemplateEngine templateEngine() { 
     SpringTemplateEngine engine = new SpringTemplateEngine(); 
     engine.setEnableSpringELCompiler(true); 
     engine.setTemplateResolver(templateResolver()); 
     return engine; 
    } 

    private ITemplateResolver templateResolver() { 
     springResourceTemplateResolver().setPrefix("/WEB-INF/templates/"); 
     springResourceTemplateResolver().setTemplateMode(TemplateMode.HTML); 
     return springResourceTemplateResolver(); 
    } 

} 

私は同じアプリケーションにjspのリゾルバを追加する必要があります。私はInternalResourceViewResolver Beanを追加しているが、期待どおりに動作しません。代わりに、私はに/テスト/ JSPを行くとき、私はエラーを取得するtest_jspページを取得する

@Bean 
    public InternalResourceViewResolver jspViewResolver() { 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/views/"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
    } 

@RequestMapping(value = "/test/leaf", method = RequestMethod.GET) 
    public String mainPage() { 
     return "test_html.html"; 
    } 

    @RequestMapping(value = "/test/jsp", method = RequestMethod.GET) 
    public String mainPage2() { 
     return "test_jsp"; 
    } 

Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "ServletContext resource [/WEB-INF/templates/test_jsp]")

誰かが、ThymeLeafがすでに存在するときにjsp viewリゾルバを追加する方法を知っていますか?私はThymeleafを最初に探すためにSpringが必要で、ページが見つからないときにはJSPを検索します。ありがとう

答えて

1

他のリゾルバの他のorderプロパティより低い整数にのorderプロパティを設定します。あなたの場合、ゼロは理にかなっています。

コントローラの場合は、ページ名だけを返し、拡張子(.html)を残しておきます。

最後に、エラーメッセージをSOに送信するときに完全なトレースを投稿してください。それが立てば、あなたのJSPにも問題があるかもしれませんが、ここの読者はすぐには分かりません。

関連する問題