模特不在泽西jsp工作

时间:2016-09-19 09:42:29

标签: jsp jersey

行动:

@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}!

1 个答案:

答案 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}