我該如何爲具有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