Spring-基于Tiles注解的配置

Spring-Tiles annotation based configuration

您好,我是 Spring 框架的新手,在我的应用程序中,我需要将 Spring 与 Tiles 集成。我如何为 Tiles 添加 viewResolver 以及为我的登录页面添加 internalViewResolver,或者如何使它成为 one.I 我正在使用基于注释的配置。我的登录页面位置是

我的配置class是

public class AppConfig  extends WebMvcConfigurerAdapter  {

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
}

@Bean
public MessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("messages");
    return messageSource;
}
     ........//

}

我应该在哪里放置我的 Tiles JSP。我希望我的问题很清楚,请发表评论以获取更多信息。谢谢!

您应该使用 UrlBasedViewResolver 视图解析器而不是 InternalResourceViewResolver,因为后缀、视图名称和前缀将在 Tiles Definition XML 文件中指定。

@Bean 
public UrlBasedViewResolver viewResolver() { 
    UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
    viewResolver.setViewClass(TilesView.class);
    return viewResolver;
} 


@Bean 
public TilesConfigurer tilesConfigurer() { 
    TilesConfigurer tilesConfigurer = new TilesConfigurer();
    tilesConfigurer.setDefinitions(new String[]{
            "/WEB-INF/defs/general.xml", 
            "/WEB-INF/defs/tiles.xml"  //another definition
    }); 
    tilesConfigurer.setCheckRefresh(true);
    return tilesConfigurer;
} 

并为每个视图添加 Tiles Def XML 文件,如下所示:

对于url路径http://localhost:8080/register:

@RequestMapping("/register") 

定义:

<definition name="page" template="/WEB-INF/layout/page.jsp">
    <put-list-attribute name="stylesheets">
        <add-attribute value="/resources/css/AdminLTE.min.css" />
    </put-list-attribute>
    <put-list-attribute name="javascripts">
        <add-attribute value="/resources/js/main.js" />
    </put-list-attribute>
</definition>

<definition name="register" extends="page">
    <put-attribute name="title" value="User Registeration" />
    <put-attribute name="body" value="/WEB-INF/jsp/register.jsp" />
    <put-attribute name="current" value="register" />
</definition>   

我在 Github 上有一个用于 Spring Tiles 的示例,但它正在使用 XML 配置,您可以使用上面的 @Bean 配置使其使用 JavaConfig。