San*_*ish 5 java jsp jstl function
我正在使用jstl C:forEach在jsp中打印表.我验证它,像
<c:choose>
<c:when test="${varName eq condition}">
<c:out value="${fn:substring(varName, 0, 3)}
</c:when>
<c:otherwise>
${varName}
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
因此,这会根据需要打印结果,并且我可以将场景用于同一页面中的其他字段以及其他页面.
有没有办法通过将参数传递给它来重用jstl代码.我们为方法所做的事情Java(在类中写入并在需要的地方访问它)?
在此先感谢您的有价值的答案和评论?
您可以定义自己的自定义 JSP 标记。在 JSP 2.0 中,您可以使用JSP 标记文件,其语法与 JSP 页面非常相似。
在WEB-INF目录下创建子目录:/WEB-INF/tags/mytaglib
在此目录中,创建一个文件displayVarName.tag:
<%@ tag body-content="empty" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ attribute name="varName" rtexprvalue="true" required="true" type="java.lang.String" description="Description of varName" %>
<%@ attribute name="condition" rtexprvalue="true" required="true" type="java.lang.String" description="Description of condition" %>
<c:choose>
<c:when test="${varName eq condition}">
<c:out value="${fn:substring(varName, 0, 3)}
</c:when>
<c:otherwise>
${varName}
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
现在您可以使用以下命令导入您的标签并在您的JSP页面中使用它:
<%@taglib prefix="mytaglib" tagdir="/WEB-INF/tags/mytaglib"%>
<mytaglib:displayVarName varName=${varName} condition=${condition} />
Run Code Online (Sandbox Code Playgroud)