ホーム » ブログ » Terasoluna開発メモ
このエントリーをはてなブックマークに追加
@2015/04/11

スポンサーリンク
ここ最近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を実際に開発して、こんな感じでした。


♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check