操作:
@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}!。
发布于 2016-09-19 18:33:18
在这里我设法找到了副本的答案所在的文档:
https://blogs.oracle.com/sandoz/entry/mvcj
JSP支持
Jersey为JSP页面提供了MVC支持。有一个JSP模板处理器,它将绝对模板引用解析为可处理的模板引用,这些模板引用是JSP页:如果绝对模板引用不是以".jsp“结尾,则将其附加到引用;以及
如果Servlet.getResource为附加的引用返回非空值,则返回附加的引用作为可处理的模板引用,否则返回null。
因此,如果web应用程序中存在JSP页面"/com/foo/Foo/index.jsp“,则绝对模板引用"/com/foo/Foo/index”将被解析为"/com/foo/Foo/index.jsp“。
Jersey会将模型实例分配给名为"it“的属性。因此,在隐式示例中,可以访问foo控制器上的Foo属性,如下所示:
${it.foo}
https://stackoverflow.com/questions/39569984
复制相似问题