我已經將Java Map對象導入到正在處理的JSP文件中。我需要做的是將該地圖的每個條目放入JSP中的表格中。我不會像我對scriptlet超級知識那樣行事,但從我所能告訴的他們都在運行之前進行評估,然後放入代碼中,這使得訪問各個條目成爲一項挑戰。我目前通過在地圖上做一個toString來實現它,然後使用正則表達式來解析信息,但是我想更安全地做到這一點。在scriptlet中訪問Java地圖
這怎麼可能實現?
我已經將Java Map對象導入到正在處理的JSP文件中。我需要做的是將該地圖的每個條目放入JSP中的表格中。我不會像我對scriptlet超級知識那樣行事,但從我所能告訴的他們都在運行之前進行評估,然後放入代碼中,這使得訪問各個條目成爲一項挑戰。我目前通過在地圖上做一個toString來實現它,然後使用正則表達式來解析信息,但是我想更安全地做到這一點。在scriptlet中訪問Java地圖
這怎麼可能實現?
我假設你的地圖是Map<Integer,String>()
類型;
<ul>
<%
for(Integer key : yourmap.keySet()) {
String value = data.get(key);
System.out.printf("%s = %s%n", key, value);
%>
<li><%= value%></li>
<%
}
%>
</ul>
您對運行前評估的scriptlet的假設是錯誤的。小腳本這樣的工作例如:
<p> Hello world </p>
<%
while (something) {
doSomeStuff();
}
%>
<p> Bye </p>
被編譯成這樣的:
stream.write("<p> Hello world </p>");
while (something) {
doSomeStuff();
}
stream.write("<p> Bye </p>");
從本質上說,一切的不小腳本投入stream.write
,那就是一切 - 在插入時沒有變化。在大多數支持JSP的應用程序服務器中,您甚至可以找到那些預編譯的JSP servlet並查看生成的代碼。此外,這種方法使其非常快速。
所以編寫腳本在你的情況下不會有問題。