没有代码的App Engine JSP

时间:2010-07-11 18:00:17

标签: google-app-engine jsp

是否可以在不使用代码的情况下使用JSP排序作为模板?

值应该插入到哈希映射中,JSP可以从那里读取值。

是否可以在GAE应用程序中编写这样的代码,或者您是否需要外部工具/框架来实现此目的?

换句话说,是否可以将值从servlet处理程序传递给JSP模板?

1 个答案:

答案 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}}。

另见: