当前位置 : 主页 > 编程语言 > java >

jsp – struts 2,tiles 2动态标题

来源:互联网 收集:自由互联 发布时间:2021-06-25
我使用tile 2.0.6作为我的模板框架和struts 2.1.6.我正在编写一个简单的cms页面,并希望让用户定义每个html页面的标题. 我有这样的标题定义 definition name="base" template="/WEB-INF/jsp/templates/base.j
我使用tile 2.0.6作为我的模板框架和struts 2.1.6.我正在编写一个简单的cms页面,并希望让用户定义每个html页面的标题.

我有这样的标题定义

<definition name="base" template="/WEB-INF/jsp/templates/base.jsp">
        <put-attribute name="title" value=" "/>
        <put-attribute name="header" value="/WEB-INF/jsp/templates/header.jsp"/>  
        <put-attribute name="content" value="dummy"/>
        <put-attribute name="footer" value="/WEB-INF/jsp/templates/footer.jsp"/>   
        <put-attribute name="search" value="/WEB-INF/jsp/search.jsp"/>
    </definition>    
    <definition name="staticview" extends="base">
        <put-attribute name="title" value=" - Static"/>
        <put-attribute name="content" value="/WEB-INF/jsp/static/view.jsp"/>
    </definition>

有没有一种方法可以在后来的jsp属性中动态覆盖header.jsp上的标题(String),例如view.jsp.或甚至使用EL进一步

<put-attribute name="title" value="%{title}"/>

让它动态地在struts上获取标题.

请指教

提前致谢

在视图页面中我们需要这个 –

<title><tiles:getAsString name="title" /></title>

以上将为您提供该页面的标题.除了,因为我们希望页面标题是动态的,所以在tiles.xml配置中,我添加了

<definition name="page1" extends="base">
    <put-attribute name="title" value="Page 1"/>
    <put-attribute name="content" value="/WEB-INF/jsp/page1.jsp"/>
</definition>
<definition name="page2" extends="base">
    <put-attribute name="title" value="Page 2"/>
    <put-attribute name="content" value="/WEB-INF/jsp/page2.jsp"/>
</definition>

现在这看起来像打字它会让它看起来像是静态的.但每次查看该页面时,该页面的标题应该相同.有什么更好的地方可以在tiles.xml上获得这些信息.

对我而言,这不是标题本身,但我需要不同的页面标题.我不想查看context属性来获取页面的路径并确定页面的标题.所以,这对我有用,并保持一切松散耦合.

如果您希望为每个页面或类似内容添加不同的动态标题,则此方法有效.

网友评论