Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何有一个灵活的网站使用瓷砖?_Java_Struts2_Tiles_Tiles2_Apache Tiles - Fatal编程技术网

Java 如何有一个灵活的网站使用瓷砖?

Java 如何有一个灵活的网站使用瓷砖?,java,struts2,tiles,tiles2,apache-tiles,Java,Struts2,Tiles,Tiles2,Apache Tiles,我的网站上有4种不同类型的会员,比如memberA、memberB、memberC和memberD。每个都应该有自己的标题headerA.jsp,headerB.jsp,headerC.jsp,headerD.jsp 如下图所示,每个成员类型都有一个定义,并定义了其特定的标题和正文。每个都有自己的标题,但其中一些标题作为其主体属性,例如memberA、memberB和memberCsharegbody.jsp <definition name="MemberA" extends=

我的网站上有4种不同类型的会员,比如memberA、memberB、memberC和memberD。每个都应该有自己的标题
headerA.jsp
headerB.jsp
headerC.jsp
headerD.jsp

如下图所示,每个成员类型都有一个定义,并定义了其特定的标题和正文。每个都有自己的标题,但其中一些标题作为其主体属性,例如
memberA
memberB
memberC
share
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>

当成员登录时,我有两个问题

  • 如何向他们显示其特定标题
  • 如何定义其特定的身体属性

  • 您可以这样定义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...
    

    您可以这样定义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...
    

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