我想在ftl页面中显示当前会话ID。
我用Session(HttpSessionHashModel)尝试了很多东西但是无法获得id?
获取请求标题也可以完成我的工作。
有没有办法在我的FTL中获得这些项目?
答案 0 :(得分:0)
您可以使用java servlet将参数放在FTL文件中。
我认为你的项目是这样的:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
try
{
Map dataModel = new HashMap();
dataModel.put("session_id", req.getSession().getId());
Configuration cfg = new Configuration();
Template tmpl = cfg.getTemplate("test.ftl");
tmpl.process(dataModel, resp.getWriter());
}
catch (TemplateException ex) {
throw new IOException(ex);
}
}
将test.ftl文件作为
<html>
<head></head>
<body>
<p> ${session_id!""} </p>
</body>
</html>
答案 1 :(得分:0)
默认情况下,FreeMarker不会公开任何内容。它甚至不知道servlet是什么。所以它取决于您正在使用的Web应用程序框架。 (除非您正在使用freemarker.ext.servlet.FreeMarkerServlet
。)或者,您可以直接将它们放入数据模型中。