JSP内でゴリゴリは極力避けるべきか?

結局のところは、JSP内でゴリゴリは極力避けるべきという結論に行き着くんですかね。


MVCパターンに従う必然性は無いのですが、MVCに従って役割分担すれば、
そういう結論が得策に思えます。


理由は以前のコメントにも書かせていただいたのですが、次のようなデメリットが考えられるからです。

  • 単体テストしずらい
  • IDEによってはデバックできない
  • 共通のインクルードファイルが大きくなると、全てのクラスファイルのサイズが大きくなる
  • スタックトレースからJSPの行を特定するのが困難


もちろん、ゴリゴリは完全にNGと言う訳ではなく、
複雑度に応じた多少のゴリゴリはありだと思う。
(完全NGだと、別のところで無理をしてしまう。)


とは言いつつも、ゴリゴリも度が越えるとMVCの役割分担に
問題あるかもしれない、と考えるようにしています。


後は、例えば、view内で複雑な判定ロジックによる分岐があった場合に、
そのロジックをview内で処理するのではなく、
ControllerやModelでロジックを処理して、
その結果をbooleanプロパティ経由でviewに渡すことで
viewをスリムにする工夫はオススメです。


また、viewの役割分担の範囲であったとしても、スクリプトレットではなく、
通常のJavaクラスでstaticメソッドを定義してそれをFunctions という
仕組みを用いて、EL式から呼び出すようは方法を検討してみた方が良いと思います。


Functions については以下のエントリーが参考になるかも。
http://d.hatena.ne.jp/dewa/20080303#1204547413