0

ルートに一致するこのサーブレットを見ています:

 @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    for (Map.Entry<Function<HttpServletRequest, Matcher>, Handler<Matcher>> handlerEntry : handlerMap.entrySet()) {
      Matcher matcher = handlerEntry.getKey().apply(req);
      if (matcher != null) {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        handlerEntry.getValue().handle(req, resp, matcher);
        return;
      }
    }
    resp.setStatus(404);
  }

参照:https ://github.com/spullara/twickery/blob/master/src/main/java/twickery/web/Router.java#L59

ビューテンプレートはここで確認できます:https ://github.com/spullara/twickery/tree/master/src/main/resources/templates

それらがどのようにリンクされているかについて混乱しています。どういうわけかサーブレットから戻ってきたと思います。どこかで戻りを受け取り、それを「モデル」として使用してビューに挿入します。

誰かが私のためにこれを明確にすることができますか?

4

1 に答える 1

0

魔法はラインで行われhandlerEntry.getValue().handle(req, resp, matcher);ます。

申し訳ありませんが、そのコードはダウンロードしませんが、 のコードを確認してくださいHandler.getValue().handle()。ビューのレンダリングを担当していると確信しています。ヒントは、handle()メソッドが HttpServletRequest と HttpServletResponse を受け取ることです。これにより、リクエストから任意のパラメーターを取得し、レスポンスに何かを書き込むことができます。

于 2012-10-21T19:24:38.803 に答える