这是我使用的标记文件。另存为
/WEB-INF/tags/replaceParam.tag:
<%@ tag pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ attribute name="name" required="true" type="java.lang.String" %><%@ attribute name="value" required="true" type="java.lang.String" %><c:url value=""> <%-- replaces or adds a param to a URL if $name in query then replace its value with $value. copies existing --%> <c:forEach items="${paramValues}" var="p"> <c:choose> <c:when test="${p.key == name}"> <c:param name="${name}" value="${value}"/> </c:when> <c:otherwise> <c:forEach items="${p.value}" var="val"> <c:param name="${p.key}" value="${val}"/> </c:forEach> </c:otherwise> </c:choose> </c:forEach> <%-- if $name not in query, then add --%> <c:if test="${empty param[name] }"> <c:param name="${name}" value="${value}"/> </c:if></c:url>在另一个页面中的用法(例如,url为
/category/9?page=3):
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %><my:replaceParam name='language' value='en' />
输出是
/category/8?page=3&language=en



