JSP 2.2 EL它在Jersey Viewable中的关键字 - 它在哪里记录?

时间:2013-06-12 23:03:57

标签: java jsp jersey el

我发现如果我有一个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文档中找不到任何提及。

1 个答案:

答案 0 :(得分:4)

this documentation的第17.4节。它声明:

  

Jersey会将模型实例分配给名为“it”的属性。所以   在隐式示例的情况下,可以引用foo   JSP模板中Foo资源的属性如下:

     

<h1>${it.foo}</h1>

所以it只是泽西岛特定的模型属性。由于它是一个模型属性,因此在视图呈现之前的某个时刻,它会被添加到请求属性中。然后可以使用EL访问器${}访问它。如果它被命名为jerseyGuy,您可以将其作为${jerseyGuy}访问。

解析${...}表达式的EL使用PageContext#findAttribute()将属性名解析为页面,请求,会话或应用程序上下文中的某个属性。