是否可以在不使用代码的情况下使用JSP排序作为模板?
值应该插入到哈希映射中,JSP可以从那里读取值。
是否可以在GAE应用程序中编写这样的代码,或者您是否需要外部工具/框架来实现此目的?
换句话说,是否可以将值从servlet处理程序传递给JSP模板?
答案 0 :(得分:3)
JSP旁边还有Servlet API。
如果地图是特定于请求或会话的,则创建一个扩展HttpServlet
的类并实现doGet()
方法,如下所示:
Map<K, V> map = createItSomehow();
request.setAttribute("map", map);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
在Servlet
的某个web.xml
注册url-pattern
,然后调用与此模式匹配的网址。
这样,map
在JSP中可用作${map}
。以下是使用JSTL map
标记迭代c:forEach
的示例:
<c:forEach items="${map}" var="entry">
Key: ${entry.key}, Value: ${entry.value}<br>
</c:forEach>
如果地图是应用程序范围的常量,那么请实现ServletContextListener
并在contextInitialized()
方法中执行以下操作:
Map<K, V> map = createItSomehow();
event.getServletContext().setAttribute("map", map);
在ServletContextListener
中注册web.xml
,如下所示:
<listener>
<listener-class>com.example.Config</listener-class>
</listener>
它将在webapp的启动时执行。然后,map
也可以在${map}
中使用{{1}}。