Clickのコードを読んでみる

見所いっぱい.40個しかクラスないのに,よくできてるなぁ〜.


ビューがとにかくシンプル.「プレビューなんか知らない」って割り切りが潔い*1
このアイデアJSPでもやりようはあるなぁ.知らず知らずのうちにカスタムタグに囚われすぎてたみたい.

*1:オートレイアウト便利

新PowerBook

12インチも解像度高くなったら,ちと怒り狂うかも.:-D
PowerBookも安くなったなぁ.PB520c持ってたころは高いのがウリだったのに(違).


あれ?なにげにApple StoreAjax化してる?

こんなんしてみた

FrontControllerをServletじゃなくてFilterにやらせる.

  • 動機
    • JSPを直撃させたくない
    • それに加えて,受けるリクエストは常に一枚かみたい
    • Servlet増やすのはイヤ

'/*'にして,こんなフィルタメソッド実装してみたよ.

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
    HttpServletRequest request = (HttpServletRequest)req;
    HttpServletResponse response = (HttpServletResponse)res;

    String ctxPath = request.getContextPath();
    String reqUri = request.getRequestURI();
    String surfix = StringUtil.rightStripLast(reqUri, ".");
    if (StringUtil.equalsIgnoreCase(surfix, "jsp")) {
        // ".jsp"の場合
        String jspFile = StringUtil.rightStripFirst(reqUri, ctxPath);
        ServletContext servletContext = request.getSession().getServletContext();
        RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher(jspFile);
        requestDispatcher.forward(request, response);
    }
    else if (StringUtil.equalsIgnoreCase(surfix, "csv")) {
        // ".csv"の場合
        //   :
    }
    else {
        // デフォはすり抜け
        chain.doFilter(request, response);
    }
}

一応,期待どおりに動いたぞ.