0

我已经将一个 Java Map 对象导入到我正在使用的 JSP 文件中。我需要做的是获取该映射的每个条目并将其放入 JSP 中的表中。我不会表现出我对 scriptlet 非常了解,但据我所知,它们在运行之前都经过评估,然后放入代码中,这使得访问各个条目成为一项挑战。我目前通过在地图上执行 toString 然后使用正则表达式解析信息来使其工作,但我想更安全地执行此操作。

这怎么可能实现?

4

2 回答 2

1

您对在运行之前评估 scriptlet 的假设是错误的。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>");

本质上,所有不在 scriptlet 中的内容都被放入 中stream.write,而所有内容 - 都被插入而不做任何更改。在大多数支持 JSP 的应用程序服务器中,您甚至可以找到那些预编译的 JSP servlet 并查看生成的代码。此外,这种方法使其速度非常快。

因此,在您的情况下,编写 scriptlet 将没有问题。

于 2013-05-09T14:03:53.230 回答
0

我假设您的 Map 是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>
于 2013-05-09T14:05:21.447 回答