有没有办法动态使用JSP自定义标签? 我有一个代表标签名称的变量,我想调用标签,但要避免使用switch语句. 例: 我有标签 my:foo attr =“fooAttr”/和标签 my:bar attr =“barAttr”/,比我有 c:
我有一个代表标签名称的变量,我想调用标签,但要避免使用switch语句.
例:
我有标签< my:foo attr =“fooAttr”/>和标签< my:bar attr =“barAttr”/>,比我有< c:set var =“tagName”value =“foo”/>.我想以某种方式使用tagName变量来调用标记.
“半动态”但简单的解决方案可以包括创建封装切换逻辑的标签.它可能看起来像:
<%@ 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属性并使用< jsp:doBody />处理主体.标准标签.
希望这能满足您的需求……
杰夫