查看文章here,有一个示例说明如何使用TemplateProcessor来使用Jersey解析JSP视图。显然这个类现在已被弃用,并被ViewProcessor< T>取代。我对如何实现它感到有些困惑(最好是新的,因为它没有被弃用);什么作为模板参数?如何实现一个简单地解析/ WebContent / WEB-INF / views / *中的jsps并评估返回视图的表达式语言?
另一个ViewProcessor article is here.
感谢。
答案 0 :(得分:3)
如果JSP文件位于WEB-INF / views下,则可以将JSP_TEMPLATES_BASE_PATH init参数设置为WEB-INF / views。然后,您只需要从资源方法返回一个新的Viewable实例(如您所指的Paul的博客所示),并将模板名称作为第一个参数传递,将数据(模型)作为第二个参数传递给构造函数。然后在JSP中,您可以使用名为“it”的属性访问数据。
更新:如果你的url-pattern是“/ *”,那就有点复杂了。委托给容器时,Jersey无法解析模板,因为Jersey servlet正在掩盖JSP。为了使容器能够看到JSP,您还需要做两件事:
如果您仍然认为必须出于某种原因实施自定义ViewProcessor,您可以查看freemarker视图处理器的实现方式并从中受到启发 - 请参阅http://java.net/projects/jersey/sources/svn/content/trunk/jersey/contribs/jersey-freemarker/src/main/java/com/sun/jersey/freemarker/FreemarkerViewProcessor.java?rev=5453