自定义标记参数名称中的EL表达式

时间:2013-06-30 13:22:01

标签: jsp jsp-tags

我创建了自定义标记,用于编码和重写带动态参数的网址。例如:

<mytags:outUrl url="${value1}" id="${value2}" />

按预期工作(url是标准参数,id是第一个动态参数。)

是否也可以直接使用这样的动态参数名称?

<mytags:outUrl url="${var1}" ${name1}="${var2}" />

我知道可以使用<jsp:attribute>,但代码太多了:

<mytags:outUrl url="${var1}"><jsp:attribute name="${name1}">${var2}</jsp:attribute></mytags:outUrl>

1 个答案:

答案 0 :(得分:0)

你正在重新发明JSTL,它已经有一个标准标签来做到这一点:

<c:url value="${someUrl}">
    <c:param name="${someName}" value="${someValue}"/>
    <c:param name="${someOtherName}" value="${someOtherValue}"/>
</c:url>

要回答您的问题:不,您建议的语法不受支持。与您建议的最接近的是动态属性。有关示例,请参阅http://www.javabeat.net/2009/02/dynamic-attributes-in-tag-file-in-jsp-2-0/http://www.coderanch.com/t/170429/java-Web-Component-SCWCD/certification/Tutorial-Dynamic-Attributes