【问题标题】:How to have a flexible website using tile?如何使用 tile 建立一个灵活的网站?
【发布时间】:2013-03-01 01:51:10
【问题描述】:

我的网站中有 4 种不同类型的成员,比如说 memberA、memberB、memberC 和 memberD。每个都应该有自己的标题headerA.jspheaderB.jspheaderC.jspheaderD.jsp

如下所示,每个成员类型都有一个定义,并定义了它们的特定标题和正文。每个都有自己的标头,但其中一些例如 memberAmemberBmemberC 共享 gbody.jsp 作为它们的正文属性。

     <definition name="MemberA" extends="baseLayout">
            <put-attribute name="header" value="/headerA.jsp"/>
            <put-attribute name="body" value="/gbody.jsp"/>
        </definition>

       <definition name="MemberB" extends="baseLayout">
            <put-attribute name="header" value="/headerB.jsp"/>
            <put-attribute name="body" value="/bodyB.jsp"/>
        </definition>

        <definition name="MemberC" extends="baseLayout">
            <put-attribute name="header" value="/headerC.jsp"/>
            <put-attribute name="body" value="/gbody.jsp"/>
        </definition>

        <definition name="MemberD" extends="baseLayout">
            <put-attribute name="header" value="/headerD.jsp"/>
            <put-attribute name="body" value="/gbody.jsp"/>
        </definition>

会员登录时有两个问题

  1. 如何向他们显示其特定的标题?
  2. 如何定义它们的具体身体属性?

【问题讨论】:

  • 升级到tiles-3然后你可以在put属性中使用表达式... OGNL表达式也被支持,你可以只粘上“A”、“B”、“C”、“D” " 通过从会话中将组件动态拉到字符串的末尾,那么您只需要一个图块。传统上,您应该为每个组合定义一个新图块,但您也可以使用通配符和正则表达式匹配来完成一些工作。

标签: java struts2 tiles tiles2 apache-tiles


【解决方案1】:

您可以这样定义 4 个标题

<definition name="Members" extends="baseLayout">
    <put-attribute name="headerA" value="/headerA.jsp"/>
    <put-attribute name="headerB" value="/headerB.jsp"/>
    <put-attribute name="headerC" value="/headerC.jsp"/>
    <put-attribute name="headerD" value="/headerD.jsp"/>
    <put-attribute name="body" value="/gbody.jsp"/>
</definition>

然后在基本布局中有一些代码说

<c:if test="${memberA}">
    <tiles:insert attribute="headerA"/>
</c:if>
etc...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2011-06-11
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2013-05-20
    相关资源
    最近更新 更多