【问题标题】:How to leave a tile empty如何让瓷砖空着
【发布时间】:2011-05-06 14:49:45
【问题描述】:

是否可以将磁贴留空?假设我在一个页面中有三个图块:页眉、正文、页脚。我可以简单地添加正文和页脚并将页眉留空吗?

<body class="claro">
<div id="wrapper">
    <div id="container" class="container">
    <div id="hd">
    <tiles:insertAttribute name="header" />
    </div>
    <div id="bd">
    <hr/>
    <tiles:insertAttribute name="body" />
    </div>
    <div id="ft">
    <hr/>
    <tiles:insertAttribute name="footer" />
    </div>
    </div>
</div>

所以我想像这样使用一次:

   <definition name="base" template="...">
    <put-attribute name="header" value="/WEB-INF/views/base/header.jspx" />
    <put-attribute name="body" value="/WEB-INF/views/base/body.jspx" />
    <put-attribute name="footer" value="/WEB-INF/views/base/footer.jspx" />
</definition>

曾经是这样的:

 <definition name="base" template="...">
    <put-attribute name="body" value="/WEB-INF/views/base/body.jspx" />
    <put-attribute name="footer" value="/WEB-INF/views/base/footer.jspx" />
</definition>

目前第二个用法爆炸了。说我还没有定义标题。

有没有办法做到这一点?

【问题讨论】:

    标签: java spring-mvc tiles


    【解决方案1】:

    使用忽略属性:

    <tiles:insertAttribute name="header" ignore="true"/>
    

    根据docs

    如果此属性设置为true,并且名称指定的属性不存在,则不写任何内容直接返回。默认值为false,会引发运行时异常。

    【讨论】:

      【解决方案2】:

      您可以只在基本定义中提供一个空的标题页,然后在更具体的定义中替换正文和页脚。

      您也可以将值设置为空字符串:

      <put-attribute name="header" value=""/>
      

      【讨论】:

        猜你喜欢
        • 2018-05-28
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多