19

スプリングを使用せずに、RESTeasyにモデルを含むjspまたはhtmlページを返す簡単な方法はありますか?春のModelAndViewに似たようなことをしたいと思います。ここでは、/ contacts / loomerと言って、モックアップされたオブジェクトをjspテンプレートで返すように要求しています。私が見る例はすべてJSON/XML用です。私はジャージーであなたがviewableを使うことができることを知っています、しかし私はRESTeasyのものだけを使う必要があります。

ありがとう!

私はこのようなものが欲しいです(しかし、春のモデルとビューはありません):

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

3 に答える 3

22

わかりました、興味のある人のためにそれを理解しました。例を見つけたら、実際にはかなり些細なことでした。

@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);

    }
于 2010-11-07T20:18:18.047 に答える
6

org.jboss.resteasy.resteasy-htmlversionを使用すると、出力を RESTEasy に送信する前に、 に3.0.6.Final直接アクセスして独自の属性を挿入できます。HttpServletRequestView

@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.

于 2014-03-03T22:53:04.353 に答える
0

上記の回答に投票しましたが、2.3.2.Final までの RestEasy で問題なく動作するようです。最新は 2.3.5.Final (今日) です。Glassfish 3.1.2.2 にバンドルされている Jersey でも問題なく動作するようです。

私が試したとき、これは 2.3.2.Final 以上の RestEasy では機能しません。「java.lang.ClassCastException: $Proxy262 は org.apache.catalina.core.ApplicationHttpRequest にキャストできません」の原因を突き止めるのに時間がかかったので、この観察結果を共有しようと思いました。

ただし、それを解決する方法を深く掘り下げようとしているわけではありません。いくつかの考えに出くわしました

乾杯

于 2013-02-20T10:00:30.600 に答える