ここ最近NTTデータ社のTerasolunaフレムワークを軽く触りました。
まぁ、素晴らしいフレムワークとは感じてなかったが、そんなに悪くないとも言える。
本記事では、Terasolunaのいくつかの機能を挙げて、知識・情報を共有する。
先ず、バリデーションについて(拍手)
Terasolunaのバリデーション検証は、実はStruts1.xバリデーションと独自で拡張したバリデーションを2つの検証ルール含む。
使用方法はStrutsと同じく、xxx-validation.xmlにチェックルールを入れて、バリデーションチェックを実行させる。
詳しく説明は前の記事:
Terasolunaでバリデーションチェックサンプル_必須チェックを参考してください。
また、xxx-validation.xml検証ファイルに入れたロジックは、サーバー側で検証しますが、必要な時にクライアント側も同じ検証ロジックでチェックできる。
Terasolunaはxxx-validation.xmlで入れたチェックルールをjavascript化にし、(端末)クライアント側にバリデーション検証する。
やり方は簡単、JSPファイルに下記のコード入れた、実現できる。
JSPのbodyに下記一行:
<!-- クライアント側にvalidationチェックを指定 -->
<html:javascript formName="/loginBL" method="validateLogin"/>
JSPのform中に下記一行
<ts:form method="post" action="/loginBL.do" onsubmit="return validateLogin(this);">
上記2行を入れれば、クライアント側もxxx-validation.xmlに入れたバリデーションチェックが行うことができる。
2つ目、blogic-io.xml設定ファイルについて(批判)
ここで、普通の処理流れについて、strutsとterasolunaのデータ受け渡し流れを見てみましょう。
Struts処理の流れは、
⇒JSPページに入れたデータをFormBeanにセットし、
⇒Action側はFormBeanに入れたデータを使って、Moduleを呼び出してデータベースとデータをやり取り、結果データをFormBeanに設定、
⇒JSPからクライアント側にレスポンス結果を返す。
Terasolunaビジネスロジック処理の流れは、
(TerasolunaもPOJO処理できる一方、ビジネスロジック処理方式で違う処理流れもあります。)
⇒JSPページに入れたデータをFormBeanにセットし、
⇒blogic-io.xmlによって、FormBeanのデータをxxxInput.javaにセット、
⇒ビジネスクラスで、xxxInput.javaに入れたデータを使って、データベースとデータをやり取り、結果データをxxxOutput.javaに設定、
⇒blogic-io.xmlによって、xxxOutput.javaに入れたデータをFormBeanにセット
⇒アクションクラスからJSPを作成、クライアント側にレスポンス結果を返す。
このビジネスロジック処理方式でデータの受け渡しは、xxxInput.java、xxxOutput.javaとblogic-io.xmlファイルを利用する。
POJO処理と比べて少なくともxxxInput.java、xxxOutput.java は必須ファイルとなり、blogic-io.xmlファイルの作成作業が発生し、開発コストを増やしてしまう。
ということで、Terasolunaは作業軽減のため、blogic-io.xml設定ファイル削減でデータ渡し方法が用意している。
(Terasolunaのblogic-io.xmlは不思議だと感じません?ガラパゴス化してません?まぁ、これ以上コメントしたくない。)
では、blogic-io.xml設定不要の方法:
xxxInput.javaのパラメータ定義に、 @BLogicParamFieldアノテーション関連付与する。
例:
@BLogicParamField
private String userName;
こう設定したら、FormBeanでのuserNameの値を、xxxInput.javaのuserNameに関連にするより、
ビジネスロジックでuserNameの値を取得できるようになる。
また、xxxOutput.javaのバラメタ定義に、@BLogicResultFieldアノテーション関連付与する例:
@ BLogicResultField
private String userName;
Inputとoutput両方利用するパラメタの場合
@BLogicParamField
@ BLogicResultField
private String userName;
そのた、FormBeanパラメータ指定して関連もできる。
xxxInput.java
@ BLogicParamField (property = "name")
private String userName;
こう設定で、FormBeanのnameをxxxInput.javaのuserNameに関連付ける。
やっと嫌なblogic-io.xmlを削減できた。
3つ目、_form機能について(拍手)
(アンダースコア)”_”をアクションフォームの頭に付けたら、FormBeanオブジェクトがセッションに格納され、次の"_"から始まった別名称のFormBeanがリクエストするまでに存続する。
これはかなりいい機能だと思う。
例えば、入力画面⇒確認画面⇒完了画面 のような処理で、3つの画面間に同じFormBean名称を使ったら、どの画面でもデータを容易に取得できる。
4つ目、メッセージのpopup機能について(ノーコメント)
Tsのタグを確認したところ、偶然に知っていた機能、実際に確認していません。
興味がある方はお試してください。
要注意するのは、MessagesPopupTag は、<ts:body> タグと連携してポップアップ画面を開く。
使用方法
<ts:messagesPopup popup="/popupErrors.do" />
...
<ts:body ...>
...
こう設定したら、処理エラーが発生する場合、ポップアップウィンドウを開き、エラーメッセージを表示する。(はず)
以上、Terasolunaを実際に開発して、こんな感じでした。
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
zanmai @2016年03月31日
» ①②③④の順で設定できるはず。…