Джерси (Jax-RS) и EL - PullRequest
       15

Джерси (Jax-RS) и EL

2 голосов
/ 18 мая 2010

Я пытаюсь заставить контроллер вернуть представление через Expression Language-Filter, но не знаю, как заставить Джерси использовать 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} в представлении на произвольное значение?

1 Ответ

4 голосов
/ 20 мая 2010

Если вы используете Джерси, то он дает возможность вернуть 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));
    }
}

Пример Patient.jsp

<span>${it}</span>

ПРИМЕЧАНИЕ: Джерси отображает объект, который вы передаете для просмотра, как «оно» в jsp.

Как только вы переадресовали Джерси на jsp, вам просто нужно добавить реализацию EL на ваш сервер приложений или контейнер сервлетов.

...