java – 如何在Spring MVC中创建多个布局

我知道
Spring中的Apache Tiles,它似乎与jsp:include相同,但它并没有解决我的问题:

我想要一个名称为layout1.jsp的文件,在这个文件中,我将定义一个布局:

<html>
<head>
<style href="style1.css" />
</head>
<body>
    <div class="main">
        <div class="left">
            <ul>
                <li>
                <li>
                <li>
            </ul>
        </div>
        <div class="content">
            <h1>${message }</h1>
        </div>
        <div class="footer">
            <span>This is footer</span>
        </div>
    </div>
</body>
</html>

一个文件是layout2.jsp:

<html>
<head>
<style href="style2.css" />
</head>
<body>
    <div class="main">
        <div class="left2">
            <ul>
                <li>
                <li>
                <li>
            </ul>
        </div>
        <div class="content2">
            <h1>${message }</h1>
        </div>
        <div class="footer2">
            <span>This is footer</span>
        </div>
    </div>
</body>
</html>

当用户在组合框上选择布局名称时,控制器将在渲染布局之前设置布局动态.

我应该怎么做?

最佳答案 要切换css文件,您可以使用Spring Theme Resolver.并且你可以使用相同的机制来改变你的html的一些小部分(比如div类)

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
   <head>
       <style href="<spring:theme code='styleSheet'/>" />          
   </head>
   <body>
       ...
       <div class="<spring:theme code='contentClass'/>">
           <h1>${message }</h1>
       </div>
       ...
   </body>
</html>

(但我建议使用相同类的相同html,只需切换css).

别忘了设置主题解析器!

@See Spring Reference: Chapter Using themes

点赞