行动:
@GET
@Path("/test")
@Produces("text/html")
public Response test()
{
Map<String, Object> map = new HashMap<>();
map.put("name", "pedja1");
return Response.ok(new Viewable("/test", map)).build();
}
test.jsp的:
它位于文件夹webapp/WEB-INF/jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Hi ${model.name}!</h1>
</body>
</html>
我在web.xml
:
<init-param>
<param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name>
<param-value>/WEB-INF/jsp</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value>
</init-param>
<init-param>
<param-name>jersey.config.servlet.filter.staticContentRegex</param-name>
<param-value>/(resources|(WEB-INF/jsp))/.*</param-value>
</init-param>
页面已加载,但会打印Hi ${model.name}!
。
答案 0 :(得分:0)
在这里,我设法找到副本的答案来自的文档:
https://blogs.oracle.com/sandoz/entry/mvcj
JSP支持
Jersey为JSP页面提供MVC支持。有一个JSP模板 将绝对模板引用解析为可处理的处理器 模板引用是JSP页面,如下所示: 如果是绝对的 模板引用不以“.jsp”结尾,将其附加到引用; 和
如果Servlet.getResource返回附加的非null值 引用然后返回附加的引用作为可处理的引用 模板引用否则返回null。
因此绝对模板引用“/ com / foo / Foo / index”将是 如果存在JSP页面,则解析为“/com/foo/Foo/index.jsp” 应用程序中的“/com/foo/Foo/index.jsp”。
Jersey会将模型实例分配给名为“it”的属性。所以 在隐式示例的情况下,可以访问foo Foo控制器上的属性如下:
$ {it.foo}