按名称动态调用JSP标记
有没有一种方法可以动态使用JSP自定义标记? 我有一个代表标记名称的变量,我想调用标记,但要避免switch语句 示例:按名称动态调用JSP标记,jsp,dynamic,tags,Jsp,Dynamic,Tags,有没有一种方法可以动态使用JSP自定义标记? 我有一个代表标记名称的变量,我想调用标记,但要避免switch语句 示例: 我有标签和标签,比我有。我想以某种方式使用标记名变量来调用标记 我理解你的担忧。。。类似于,不是吗?这样的解决方案确实很诱人,但它需要修改JSP规范,以接受不属于XML规范的动态命名标记 “半动态”但简单的解决方案可能包括创建一个封装切换逻辑的标记。它可能看起来像: <%@ tag body-content="empty" %> <%@ attribute
我有标签
和标签
,比我有
。我想以某种方式使用标记名变量来调用标记 我理解你的担忧。。。类似于
,不是吗?这样的解决方案确实很诱人,但它需要修改JSP规范,以接受不属于XML规范的动态命名标记
“半动态”但简单的解决方案可能包括创建一个封装切换逻辑的标记。它可能看起来像:
<%@ tag body-content="empty" %>
<%@ attribute name="tagname" required="true" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="tags" %>
<c:choose>
<c:when test="${ tagname == 'tag1'}">
<tags:tag1/>
</c:when>
<c:when test="${ tagname == 'tag2'}">
<tags:tag2/>
</c:when>
</c:choose>
然后,您可以在任何您喜欢的地方使用(并重复使用)它,使用如下内容:
<tags:my-switch tagname="${ tagname }"/>
当然,您可以添加可能需要的任何其他属性,标记的主体不必为空。事实上,如果需要处理某些标记体,请修改上面的body content
属性,并使用
标准标记处理该体
希望这能满足你的需要
杰夫除了下面提到的答案,你还找到了其他解决方案吗?