对 apache tile 属性进行逻辑处理

Do logic on apache tile attributes

在我的 apache tiles 配置文件中,我有一个这样的部分:

<definition name="admin/*/*" extends="adminLayout">
    <put-attribute name="key" cascade="true" value="{1}" />
</definition>

然后,在我的 JSP 中,我想对 tile 属性做一些逻辑。 类似于:

<c:if test="${key == 'value'}">
    // do something
</c:if>

其中键来自 tile 属性。

如何在表达式语言中访问此 tile 属性?

我试过了

<c:set value="<tiles:insertAttribute name='key'/>" var="theKey"></c:set>

<c:if test="${<tiles:insertAttribute name='key'/> == 'value'}">

并且两次原始图块 xml 都用作比较字符串 - 它不会被属性替换。

使用Tiles extras:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:tiles="http://tiles.apache.org/tags-tiles"
    xmlns:tilesx="http://tiles.apache.org/tags-tiles-extras"
    version="2.0">

    <tilesx:useAttribute id="keyJspVariable" name="key" classname="java.lang.String" />

    <c:if test="${keyJspVariable== 'value'}">
       // do something
    </c:if>

文档示例:https://tiles.apache.org/framework/tutorial/advanced/list-attributes.html