RESTeasy и возврат на страницу JSP с моделью

Есть ли простой способ, не используя spring, вернуть RESTeasy страницу jsp или html с помощью модели? Я хочу сделать что-то похожее на spring ModelAndView, где у меня есть запрос сказать /contacts/loomer и вернуть его в шаблон jsp. Все примеры, которые я вижу, предназначены для JSON/XML. Я знаю, что в Джерси вы можете использовать видимый, но мне нужно использовать только материал RESTeasy.

Спасибо!

Мне нужно что-то вроде этого (но без spring modelandview):

   @POST
   @PUT
   @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
   @Produces(MediaType.TEXT_HTML)
   public ModelAndView saveContactForm(@Form Contact contact)
         throws URISyntaxException
   {
      service.save(contact);
      return viewAll();
   }

Ответы

Ответ 1

Хорошо, я понял это для всех, кто интересуется. Это было довольно тривиально, как только я нашел пример.

@GET
@Path("{eventid}")
@Produces("text/html")
public void getEvent(@Context HttpServletResponse response,
        @Context HttpServletRequest request,
        @PathParam("eventid") Long eventid) throws ServletException,
        IOException {

    EventDao eventdao = DaoFactory.getEventDao();
    Event event = eventdao.find(eventid);

    request.setAttribute("event", event);
    request.getRequestDispatcher("eventView.jsp").forward(request, response);

    }

Ответ 2

Используя org.jboss.resteasy.resteasy-html version 3.0.6.Final, вы можете напрямую обращаться к HttpServletRequest и вводить свои собственные атрибуты, прежде чем направлять вывод в RESTEasy View.

@GET
@Path("{eventid}")
@Produces("text/html")
public View getEvent(@Context HttpServletResponse response,
                     @Context HttpServletRequest request,
                     @PathParam("eventid") Long eventid){

    EventDao eventdao = DaoFactory.getEventDao();
    Event event = eventdao.find(eventid);

    request.setAttribute("event", event);
    return new View("eventView.jsp");
}

Это эмулирует некоторое поведение плагина Htmleasy без необходимости повторного подключения вашего web.xml.

Ответ 3

Я проголосовал за вышеупомянутый ответ, но, похоже, он работает нормально с RestEasy до 2.3.2. Final, последнее - 2.3.5. Final (на сегодняшний день). Кажется, что все в порядке с Джерси в комплекте с Glassfish 3.1.2.2 тоже.

Это не работает с RestEasy выше 2.3.2.Final, когда я пытался. Я думал поделиться этим наблюдением, поскольку мне потребовалось некоторое время, чтобы выяснить, что вызвало "java.lang.ClassCastException: $Proxy262 нельзя отнести к org.apache.catalina.core.ApplicationHttpRequest '

Однако я не пытаюсь глубоко погрузиться, как это решить, я наткнулся на некоторые мысли fooobar.com/info/300657/...

Приветствия