2

我试图让控制器通过表达式语言过滤器返回视图,但不知道如何让球衣使用 EL 过滤视图。

使用 EL 标签查看:

<html>
    <title>%{msg}</title>
</html>

控制器:

@GET
@Produces("text/html")
public Response viewEventsAsHtml(){
    String view=null;
    try {
        view=getViewAsString("events");
    }catch(IOException e){
        LOG.error("unable to load view from file",e);
        return null;
    }
    Response.ResponseBuilder builder=Response.ok(view, MediaType.TEXT_HTML);
    return builder.build();
}

为了让控制器用某个任意值替换视图中的 ${msg} 部分,将如何进行?

4

1 回答 1

4

如果您使用的是 Jersey,那么它提供了从资源返回 Viewable 的能力,该资源将默认处理jsp。

泽西岛资源示例

@Path("/patient")
public class PatientResource {
    @GET @Path("/{patientId}") @Produces(MediaType.TEXT_HTML)
    public Viewable view(@PathParam("patientId") int patientId) {
        return new Viewable("/patient.jsp", Integer.toString(patientId));
    }
}

示例病人.jsp

<span>${it}</span>

注意:Jersey 将您传递给 Viewable 的对象映射为 jsp 中的“它”。

将 Jersey 转发到 jsp 后,您只需将 EL实现添加到应用程序服务器或 servlet 容器。

于 2010-05-19T20:08:54.010 回答