2010-05-18 4 views
2

im пытается получить контроллер, чтобы вернуть представление через языковой фильтр Expression, но не имеет понятия о том, как заставить трикотаж использовать EL для фильтрации представления.Джерси (Jax-RS) & 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(); 
} 

Как бы один идти о для того, чтобы получить контроллер, чтобы заменить $ {сбщ} часть в представлении некоторыми произвольное значение?

+2

JSTL? Как [JSTL] (http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/) входит в картину? Разве вы не имеете в виду EL, язык выражений, те '$ {}' вещи на средней странице JSP? Или, может быть, просто «форматирование вывода» с помощью '{n}', как это было бы с API-интерфейсом MessageFormat? – BalusC

+0

true .. EL - это часть, которую я интересую. Так плохо перефразируйте вопрос ... спасибо за разъяснение. Хотя было бы неплохо иметь возможность использовать теги из JSTL (например: c: ... и fmt: ...) – fasseg

ответ

4

Если вы используете Jersey, то он предоставляет возможность возвращать видимый ресурс, который по умолчанию будет process 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, вам просто нужно добавить EL implementation на ваш сервер приложений или контейнер сервлетов.

+1

Я знаю, что это было более года назад, но вы могли бы уточнить, что вы подразумеваете, добавив реализация? Вы имеете в виду добавить баны зависимости. Если да, то как вы будете использовать его после импорта? – Blaskovicz

Смежные вопросы