Windows Phone 7アプリ開発とか
Windows Phone 7絡みの開発始めました。
妙な仕様
顧客マスタ編集のjspに妙な仕様が…
/** * 個人顧客の場合に、顧客名、顧客名カナが変更されたら、顧客担当者名、顧客担当者名カナにコピーする * 顧客担当者名、顧客担当者名カナが変更されたら、顧客名、顧客名カナにコピーする */ function copyNameXPcName(direction) { var customerCode = $("#customerCode").val(); if(customerCode.length == 0) { return; } var headChar = customerCode.charAt(0); if(headChar != '2' && headChar != '4') { // 個人顧客以外は行わない return; }
('A`) なんというマジックナンバー。これは間違いなく罠。
メニューを追加する
メニューはLogin時にLoginAction.login()でロードされCommonResources.userDto.menuDtoListに格納される。
UserDtoが
@Component(instance = InstanceType.SESSION)
とセッションスコープになっていてこれをセッション内で使いまわす構造となる。
メニューのロードはroot.service.MenuService.findMenuByUserId()を通して行われる。
ざっくりTIPS
わりとSeasar2のものが多め
SQL関連
構成
- クラス構成
- Actionクラス(root.action)
フロントエンドに対応する。
formとBean経由でjspを出力する - Formクラス(root.form)
jspとのFormバインド - entity (root.entity)
Tableと正対するEntity
Serviceからデータを取得する際にこのクラスにバインドされる。
更新系ではあまり使われてない? - service(root.service)
Entityに対する操作一般のパッケージクラス。
データの操作は全てService経由で行われる。
Genericsを利用し上手くEntityとIOのバランスを取ってる印象
参考
S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ
S2AbstractServiceは便利なJdbcManagerじゃないよ - ひがやすを blog
- Actionクラス(root.action)
*1:使われ方を見ると単なるデータ受け渡し用のパラメータクラスというよりはEntityの意味を強く持ちながら、かつModel層からは離れた位置にあるというしっくり来ないクラス。
SalesCubeをカスタマイズ
次のソリューションのためにSalesCubeをカスタマイズすることに。
販売管理システム SalesCube - トップページ
http://www.ark-info-sys.co.jp/jp/product/salescube/index.html
ソースを分析しつつカスタマイズの勘所なんかを。
(Ver.1.1ベース)
とはいえSeasar2にも不慣れなんで誰得なまとめになりそうな。