我发现如果我有一个Viewable
(jersey)将模型传递给JSP,那么访问它的方法是在地图键前添加it
e.g。
的index.jsp
<html>
<body>
<h2>Hello World ${it.foo}!</h2>
</body>
</html>
JAX-RS资源方法:
@GET
@Path("index")
public Viewable index(@Context HttpServletRequest request) {
System.out.println("/INDEX called");
HashMap<String, String> model = new HashMap<String, String>();
model.put("foo","bar");
return new Viewable("/index.jsp", model);
}
我基于这个资源:http://blog.usul.org/using-jsp-in-a-jersey-jax-rs-restful-application/
但我想知道,it
是什么以及它来自哪里,是否特定于泽西岛?如果是这样,它在哪里记录(很难搜索“它”,因为谷歌倾向于从搜索中删除它,没有双关语意图)
在Java EE文档中找不到任何提及。
答案 0 :(得分:4)
this documentation的第17.4节。它声明:
Jersey会将模型实例分配给名为“it”的属性。所以 在隐式示例的情况下,可以引用foo JSP模板中Foo资源的属性如下:
<h1>${it.foo}</h1>
所以it
只是泽西岛特定的模型属性。由于它是一个模型属性,因此在视图呈现之前的某个时刻,它会被添加到请求属性中。然后可以使用EL访问器${}
访问它。如果它被命名为jerseyGuy
,您可以将其作为${jerseyGuy}
访问。
解析${...}
表达式的EL使用PageContext#findAttribute()
将属性名解析为页面,请求,会话或应用程序上下文中的某个属性。