gpt4 book ai didi

jsp - 如何在插入的页面中包含磁贴定义属性

转载 作者:行者123 更新时间:2023-12-04 22:18:21 28 4
gpt4 key购买 nike

我有一个包含这些定义的tiles-defs.xml...

<definition name="masterLayout" path="/WEB-INF/tiles-layouts/globalLayout.jsp">
<put name="pageTemplate" value="over-ride for each page" />
</definition>

<definition name="childLayout" extends="masterLayout">
<put name="pageTemplate" value="/WEB-INF/tiles-layouts/child/layout.jsp" />
<put name="title" value="page title" />
<put name="metaKeywords" value="" />
<put name="metaDescription" value="" />
<put name="body" value="/child/pagebody.jsp"/>
<putList name="list">
<add value="title" />
<add value="metaKeywords" />
<add value="metaDescription" />
<add value="body" />
</putList>
</definition>

在 globalLayout.jsp 我有这个工作,但我不会总是知道子定义添加到页面的属性。
<tiles:insert attribute="pageTemplate">
<tiles:put name="title"><tiles:getAsString name="title" /></tiles:put>
<tiles:put name="metaKeywords"><tiles:getAsString name="metaKeywords" /></tiles:put>
<tiles:put name="metaDescription"><tiles:getAsString name="metaDescription" /></tiles:put>
<tiles:put name="body"><tiles:getAsString name="body" /></tiles:put>

由于子定义并不总是包含相同的属性。有没有办法在子定义中使用 putList 将属性放入 globalLayout.jsp 内的子页面范围内?我尝试了以下方法,但失败了
<%@ page import="java.util.Iterator" %>
<tiles:importAttribute />
<bean:define id="list" name="list" type="java.util.List" scope="page" />
<tiles:insert attribute="pageTemplate" ignore="true" flush="true">
<%
for ( Iterator it = list.iterator(); it.hasNext(); ) {
String item = (String) it.next();
%>
<tiles:put name="<%=item%>"><tiles:getAsString name="<%=item%>" ignore="true" /></tiles:put>
<% } %>
</tiles:insert>

最佳答案

使用 Tiles 2,您现在可以设置 cascade="true"put-attributes在瓷砖。这将使它们对嵌套的子模板可见。

here

关于jsp - 如何在插入的页面中包含磁贴定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3549835/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com