「カスタムタグ」と「EL式」の使い分け

JSPファイル内の記述方針についてですが、
「カスタムタグ」と「EL式」の使い分けに悩みそうだ。


足し算フォーム(タグリブベース)

<s:form action="/add">
  <html:text property="arg1"/> 
  +
  <html:text property="arg2"/> 
  = 
  <c:out value="${result}"/>
  <html:submit property="submit" value="サブミット" />
</s:form>


足し算フォーム(EL式ベース)

<form action="/sa-struts-tutorial/add/" method="post">
  <input type="text" name="arg1" value="${arg1}" /> 
  + 
  <input type="text" name="arg2" value="${arg2}" />
  = 
  ${f:h(result)}
  <input type="submit" name="submit" value="サブミット"/>
</form>


個人的には、どちらか一方に寄るのではなく、
うまく棲み分けして使われると思っている。


このあたりの議論は枯れていて既に定番の方針があるはず。
なんとなく、以下のような方針じゃないかと妄想してみる。

  • formタグなどデザインを意識しなくても済むものはカスタムタグを使う
  • inputタグのテキストのようなデザインに関わるタグはEL式を使う


追記1:ひがさんからコメントで以下のようなアドバイスを頂きました。

選択リストやラジオボタンでは、タグリブを使う必要がある(ELだけでもいけるけど面倒)ので、便利なタグリブ(s:formなど)はそのまま使い、HTMLでも十分なやつは、ELを使うということでよいのではないでしょうか。


そんな訳で、上記の方針に照らし合わせると、次のようなフォームになる。


足し算フォーム(タグリブとEL式の混在型)

<s:form action="/add">
  <input type="text" name="arg1" value="${arg1}" /> 
  + 
  <input type="text" name="arg2" value="${arg2}" />
  = 
  ${f:h(result)}
  <input type="submit" name="submit" value="サブミット"/>
</s:form>


ちなみに、下図は上記の3つのパターンをブラウザで直接開いたイメージ。


「EL式」と「混在型」は見た目は同じですが、HTMLソースの簡潔さを考慮すると
総合的に「混在型」が良さそうですね。


注:id:higayasuo さんのコメントのアドバイスを受けて、ソースコードを一部修正しました。