我该如何为具有2个属性的自定义标签(只是一个模板)编写代码,这个属性允许我使用jstl标签逻辑输出一个html片段(一个html表格),这个标签逻辑可以从我的jsp中调用。JSTL自定义标签
这可以在没有编写java类的情况下完成,这是我在所有例子中看到的。
我试图达到的目标是将JSP中的重复JSTL逻辑外部化为自定义标记,然后在运行时使用属性传递标记所需的动态值。
感谢,
我该如何为具有2个属性的自定义标签(只是一个模板)编写代码,这个属性允许我使用jstl标签逻辑输出一个html片段(一个html表格),这个标签逻辑可以从我的jsp中调用。JSTL自定义标签
这可以在没有编写java类的情况下完成,这是我在所有例子中看到的。
我试图达到的目标是将JSP中的重复JSTL逻辑外部化为自定义标记,然后在运行时使用属性传递标记所需的动态值。
感谢,
不要使用小脚本!他们是一个不好的做法,他们让业务逻辑泄漏到你的视图层。
您可以使用JSTL创建标签文件;这很简单。 This是一个很好的开始。
一个例子:
mytable.tag:
<%@ attribute name="cell1" required="true" type="java.lang.String" description="Text to use in the first cell." %>
<%@ attribute name="cell2" required="false" type="java.lang.String" description="Text to use in the second cell." %>
<table>
<tr>
<td id = "cell1">${cell1}</td>
<td id = "cell2">${cell2}</td>
</tr>
</table>
假设你的标签是在/WEB-INF/tags
,你可以使用它是这样的:在我的情况
<%@ taglib prefix="mystuff" tagdir="/WEB-INF/tags" %>
<mystuff:mytable cell1="hello" cell2="world" />
而不是采取一个标签的方法,在你的JSP开始,你可以把你的病情的输出到一个会话变量,然后通过小脚本使用会话变量,在所有其他变量。类似下面:
开始JSP
<% boolean doStuff = isMyConditionTrue ? true : false;
session.setAttribute("doStuff", doStuff);
%>
其他的JSP
<% if(session.getAttribute("doStuff") != null && (boolean)session.getAttribute("doStuff")) {
%>
//do stuff
<% } %>
我想要重新使用我的jstl的片段 – van