在JSTL中有条件地包装html元素
我需要在JSTL中有条件地包装html元素 例如,我需要根据条件将部分文本转换为链接,如下所示在JSTL中有条件地包装html元素,html,spring,jsp,spring-mvc,jstl,Html,Spring,Jsp,Spring Mvc,Jstl,我需要在JSTL中有条件地包装html元素 例如,我需要根据条件将部分文本转换为链接,如下所示 <c:if test="${not empty link}"> <a href='${link)" target="_blank"> </c:if> ${value} <c:if test="${not empty value.link}"> </a> </c:if> 显然,上面的代码是无效的。事实上
<c:if test="${not empty link}">
<a href='${link)" target="_blank">
</c:if>
${value}
<c:if test="${not empty value.link}">
</a>
</c:if>
显然,上面的代码是无效的。事实上,我正在寻找一些简洁的方法来做到这一点
<c:wrap_if element="a" href="${link}" target="_blank">
${value}
</c:wrap_if>
${value}
已经有这样的标签了吗。我应该自己写吗?或者有更好更干净的方法来实现这一点吗?您可以通过以下构造来实现:
<c:choose>
<c:when test="${not empty link}">
<a href="${link}" target="_blank">${value}</a>
</c:when>
<c:otherwise>
${value}
</c:otherwise>
</c:choose>
${value}
您也可以使用它-
<c:set var="myHtml" value="${value}" />
<c:if test="${not empty link}">
<c:set var="myHtml" value="<a href='${link)' target='_blank'>${value}</a>" />
</c:if>
${myHtml}
${myHtml}
为什么您的代码无效?将第二个not empty value.link
更改为仅not empty link
。我的代码无效,因为它不是有效的xml,不是因为我使用value.link。我相信您已经在使用最佳解决方案。我对这种方法不太满意,主要是因为我必须重复多次输出值的逻辑。如果${value}没有那么简单,那将是一个真正的难题。如果您有非简单的${value},您可以在之前计算它并将其设置为变量:。在这种情况下,最好生成一个带值的范围。如果${notempty link}为span分配特殊类。之后,编写小的jquery代码,检查该类的跨度,并用“a”元素包装它