SAStrutsPlugin0.0.6リリース、他雑感

SAStrutsPlugin0.0.6

けっこう機能強化されてます。Actionの雛形とか個人的には便利そうだと思いました。
あとView on Server。Actionを右クリックしてSAStruts→View on Serverってやると、ブラウザでレンダリングしたページが表示される。これはあくまでも実行メソッド単位じゃなくて、アクション単位で、action.AddActionで実行すると/add/を実行した結果、つまりindex()が実行されforwardされた結果が表示されるって意味ですね。

きょうは珍しく昼間(仕事の一環で)、SAStrutsに触ってみました。

アーキテクチャ再編検討の一環として、今ある既存のStrutsアプリをSAStrutsで書き直したらどうなるかなーなんていうのを試験的にやってみました。とりあえず参照系。数ヶ月前にいっぺんやってみたけどプラグインとかが強化されてるので改めて実施。

まず思ったのは、これってやっぱり、生のStrutsに比べて開発ラクだなーってこと。
DoltengでDBからEntity作って)、ActionやJSPからSAStrutsPluginで行き来して、JdbcManagerでスパっと外部結合書いて、今日のところはサクサク行った感じです。

途中引っかかったのは

  • Doltengのプロジェクト新規作成はやっぱしちょっと古いのでblankから作り直した(mavenリポジトリ?が古いのかも)
  • foo_bar_1という列がキャメル化によってfooBar1になって、でもそれだとうまく列名と対応づかないので@Columnアノテーションをつけたというのと、
  • あとS2JDBCSimpleWhere#excludesWhitespace() を見つけるのに手間取ったくらいでした。
妄想1

従業員一覧みたいなのを、DTOからJSP${f:h(e.ename)}うんぬんを書くのが結構かったるかったです。そこで、プラグインを妄想。JSP中のEL式の中で、Ctrl+Spaceを押すと、DTOのプロパティの候補が表示される、とか。(んなもん作れるのか?)

または、DTOで右クリックして「プロパティの一覧をクリップボードにコピー...」ができるとか。どんな形式でコピーされるかはVelocityか何かでカスタマイズできるようにしといて、たとえば次のようなテンプレが勝手にコピーされるので、それをJSPにペーストすればラクチン。(こっちだったら作れるかも(Velocityは別として))個人的にはここでPerlか何かで作ったフィルタを外部プロセスで実行したいところだけど、作るとしたらEclipse内で完結させたほうがよさげ。

 <table>
 <thead><tr><th>aaa</th><th>bbb</th><th>ccc</th></tr></thead>
 <tbody>
 <c:forEach var="e" varStatus="s" items="${empItems}">
   <tr class="${s.index %2 == 0 ? 'even' : 'odd'}">
   <td>${f:h(e.aaa)}</td>
   <td>${f:h(e.bbb)}</td>
   <td>${f:h(e.ccc)}</td>
 </c:forEach>
 </tbody>
 </table>

みたいな。

妄想2

f:url()のサンプルがほしいですね。画像とかCSS。というか、もうあるかもしれないけど、なければ、趣旨を壊さない範囲でチュートリアルプロジェクトに追加してみます。

妄想3

ツイッターで挙がってたのだけど、HOT deployまわりの動きの補足説明(たしかS2Containerのドキュメントへのリンクはあったと思うけど)、とか、TDDが好きな人向けの、テストの進め方的なもの(私が聞きたいですが)。チュートリアルSeleniumで機能テストとかつけたら邪魔かな?SeleniumIDEをちょっと試しただけですが使えそうに思いました。あとこれは前も思ったのですが、遷移網羅の検証。つながり的におかしなところはないか、redirect/forwardによってパスがおかしくなって以降の処理に差支えがでたりしないか、といったところをチェックして問題が発見できれば最高なのですが、それって新たなroutingFilterを作るようなものでちょっと厳しいですね。