Aggavara

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年9月29日

摘要: ●暗黙コンポーネントWebアプリケーションにおいて特に何も設定しなくても宣言するだけでDIされるコンポーネント●種類①S2Container containerコンテナ②HttpServletRequest requestリクエスト③HttpServletResponse responseレスポンス④ServletContext applicationサーブレットコンテキスト⑤Map applicationScopeServletContextの属性⑥Map initParamServletContextの初期化パラメータ⑦Map sessionScopeHttpSessionの属性⑧Map 阅读全文
posted @ 2012-09-29 17:09 Aggavara 阅读(346) 评论(0) 推荐(0) 编辑

摘要: ●env.txtSeasarでテストや実際の環境を変更するためのもの●環境名ut:単体テストct:結合テストit:統合テストproduct:運用環境●diconファイル内でのenv.txtの呼び出し#ENVを使う●環境情報の取得方法(java)cond = Env.getValue();if(cond.equals(Env.UT)){ // 単体テスト環境} if (cond.equals(Env.CT)) { // 結合テスト環境} if (cond.equals(Env.IT)) { // 統合テスト環境} if (cond.equals(Env.PRODUCT)) { // 運用環境} 阅读全文
posted @ 2012-09-29 17:09 Aggavara 阅读(276) 评论(0) 推荐(0) 编辑

摘要: SAStrutsのエラーメッセージの設定方法について●application.propeties英語のエラーメッセージファイル●application_ja.propeties日本語のエラーメッセージファイル●設定方法①エラーメッセージファイルに「errors.属性 = エラーメッセージ」を記述例:errors.invalid = {0}が不正です●属性headerfooterprefixsuffixinvalidmaxlengthminlengthmaxbytelengthminbytelengthrangerequiredbytedatedoublefloatintegerlongshor 阅读全文
posted @ 2012-09-29 17:08 Aggavara 阅读(313) 评论(0) 推荐(0) 编辑

摘要: ●JSP(JavaServerPages)Java言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術MVCモデルのViewを担当●タグ①<% --- %>javaプログラムの埋め込み(スクリプトレット)②<%=式>式を表示③HTMLタグ④EL(Expression Language:式言語)[${}]JavaBeanの値を参照する⑤JSTLのタグライブラリ公式:http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/namespace:http://java.sun.com/jsp/js 阅读全文
posted @ 2012-09-29 17:06 Aggavara 阅读(412) 评论(0) 推荐(0) 编辑

摘要: ●入力チェックアノテーションプロパティに設定するアノテーション入力チェックの方法を設定する●@Required必須チェック①msgエラーメッセージ②arg0メッセージの最初の引数デフォルトはプロパティ名③target対象の実行メソッド●@Validwhen(test="条件")条件式付きチェック①test(必須)条件②msgエラーメッセージ③arg0メッセージの最初の引数デフォルトはプロパティ名④args@Argアノテーションで指定するメッセージの引数⑤target対象の実行メソッド●@Minlength(minlength=最小の文字数),@Maxlength(maxle 阅读全文
posted @ 2012-09-29 17:03 Aggavara 阅读(448) 评论(0) 推荐(0) 编辑

摘要: SAStrutsで使用するアノテーションを簡単にですが勉強のため並べてみます@~(この括弧内は無くても可能)●コンポーネント定義(app.dicon)のためのアノテーション①@Component(属性 = "指定名")→クラスに付与→DIのコンポーネント登録→属性name:コンポーネント名instance:ライフサイクルの属性autoBinding:自動バインディングの設定※instanceの指定名InstanceType.SINGLETON:シングルトンInstanceType.PROTOTYPE:複数インスタンス化可能InstanceType.SESSION:セッション 阅读全文
posted @ 2012-09-29 16:54 Aggavara 阅读(520) 评论(0) 推荐(0) 编辑

摘要: ●アクション(~Action)①サーバーサイドの処理実装 ②メソッドのURLマッピング→実行メソッドに@Executeを付ける→マッピングされるルール 1.アクションのクラス名から末尾のActionを削除 2.アクションの先頭の文字を小文字 3.「アクション名/メソッド名/」がURL ※実行メソッドリクエストを処理するメソッド③URLパターン→実行メソッドに@Execute(validator = false, urlPattern = "マッピングURL")→実行メソッドはマッピングURLにマッピングされる④アクションからjspへの値受け渡しpublic String m 阅读全文
posted @ 2012-09-29 16:53 Aggavara 阅读(495) 评论(0) 推荐(0) 编辑

摘要: SAStrutsアクションにJSONを返すメソッドを作成してみる - 130単位↑で書いたコードに対し、気になった点があって直そうと思いました。が、あまりに修正点が多かったので新たに記事にしてみます。以前のコードAjaxでリクエストされ、従業員のリストをJSON形式で返すメソッドです。@Execute(validator = false)public String ajaxEmployeeList() { List<Employee> employeeList = employeeService.findByDeptId(form.departmentId); HashMa... 阅读全文
posted @ 2012-09-29 16:47 Aggavara 阅读(384) 评论(0) 推荐(0) 编辑

摘要: SAStrutsで、例外発生時にエラーページに遷移させたい。これが今回やりたいこと。どうやらStrutsの機能でできるようです。以下はリファレンスの引用です。struts-config.xml<global-exceptions> <exception path="/error/norole.jsp"key="errors.norole"type="org.seasar.struts.exception.NoRoleRuntimeException"/></global>Super Agile St 阅读全文
posted @ 2012-09-29 16:45 Aggavara 阅读(1063) 评论(0) 推荐(0) 编辑

摘要: SAStruts アクションにJSONを返すメソッドを作成してみる - 130単位前回の続きです。やりたいことは以下。部署:従業員:2つのセレクトボックス片方の選択により、Ajaxでもう片方の項目を動的生成前回はSAStrutsでサーバー側のJSONを返す処理を作成しました。今回はクライアント側のJavaScriptです。jQueryを使います。getでJSONを取得するメソッドのリファレンスを確認します。jQuery.getJson(url, data, callback )HTTP(GET)通信でJSON形式のデータを読み込む。no title引数は順に、リクエストURL、パラメータ、コー 阅读全文
posted @ 2012-09-29 16:44 Aggavara 阅读(2065) 评论(0) 推荐(0) 编辑

摘要: 部署:従業員:このような2つのセレクトボックスがあって、部署の選択に応じて、従業員のセレクトボックスを動的に生成したいとします。これを、Ajaxを使ってSAStrutsで実現しようとしてました。StringBufferの例アクションにAjaxリクエスト用のメソッドを作成します。※パラメータの部署idはアクションフォームで定義されているとします。@Execute(validator = false)public String ajaxEmployeeList() { List<Employee> employeeList = employeeService.findByDeptId( 阅读全文
posted @ 2012-09-29 16:43 Aggavara 阅读(1417) 评论(0) 推荐(0) 编辑

摘要: AS400のDB2では、通常ではトランザクションが扱えないようです。ただし、ジャーナル処理を設定すれば扱えるようになるみたいです。*1で、今回の案件。ジャーナルは作成しないIDはテーブルを使って採番という方針があり、それと関連してFOR UPDATEについてあれこれ調べたりしてました。DB2で「SELECT ... FOR UPDATE」のロックを検証 - 130単位S2JDBC DB2DialectでのforUpdate()を調べてみた - 130単位さて、Javaには「synchronized」という修飾子があるそうです。これをメソッドの宣言に記述すれば、排他処理が行えるとのこと。Java 阅读全文
posted @ 2012-09-29 16:42 Aggavara 阅读(774) 评论(0) 推荐(0) 编辑

摘要: 採番用テーブルによってidの採番を行う場合、「SELECT ... FOR UPDATE」を使えばよい、というのがここ1年で覚えた知識のひとつ。ただ、あまり深くは理解していませんでした。一番の疑問点は、「FOR UPDATE」という文字列の指す意味。ふつうに訳すと「更新のための」となり、照会は問題なく行えそうな気がしてきます。仮に照会が行えるとしたら、極めて近いタイミングのアクセスがが発生した場合、重複したidができる可能性があることになってしまいます。また、ロックの種類はおおまかに共有ロック(照会可能、更新不可)と排他ロック(照会・更新とも不可)があるようです。FOR UPDATEで実際に排 阅读全文
posted @ 2012-09-29 16:40 Aggavara 阅读(4832) 评论(0) 推荐(0) 编辑

摘要: FOR UPDATEの自動生成DB2Dialectを指定してS2JDBCのSQL自動生成でforUpdate()を使うと、「 for update with rs」が付加されたSQLが発行されます。select T1_.KEY as C1_, T1_.VALUE as C2_ from ID_GENERATOR T1_ where T1_.KEY = 'EMPLOYEE_ID' for update with rsDb2Dialectのソースをのぞいてみると、そのような記述があるのが確認できます。ちなみにDb2DialectはS2Tigerの中に存在します。利用できないメソッド 阅读全文
posted @ 2012-09-29 16:40 Aggavara 阅读(312) 评论(0) 推荐(0) 编辑

摘要: http://localhost:8080/app/subapp/action/method/1ホスト名以降、「メインアプリ/サブアプリ/アクション/メソッド/パラメータ」とします。SAStrutsでこのURLにアクセスした場合の、<s:link>と<html:link>の挙動を比較してみます。s:link以下、公式リファレンスの引用です。SAStrutsには、Strutsのhtml:linkを継承したs:linkが用意されています。 href属性を設定するときに、コンテキストルートを自動的に補完させる場合に使います。パスを/ではじめた場合は、コンテキストルートからみた 阅读全文
posted @ 2012-09-29 16:37 Aggavara 阅读(1225) 评论(0) 推荐(0) 编辑

摘要: SAStruts/S2JDBC JSPで画面部品を作ってみる - 130単位の続きです。実際に作りたかった画面部品は、テーブル結合を伴った、ネストしたプロパティを持つ項目でした。これを実現するのにまた地味に時間を食いました。というか要はMapの使い方を知らなかっただけなのですが。エンティティとサービス従業員に部署を結合して、所属する部署を表示させたいとします。Employeeへ関連を定義します。@Entitypublic class Employee { ... @ManyToOne Department department;}EmployeeServiceで、結合して取得... 阅读全文
posted @ 2012-09-29 16:36 Aggavara 阅读(625) 评论(0) 推荐(0) 编辑

摘要: これまではこんな感じで週ごとに振り返ってきましたが、なかなか現実に追いつかず、また記憶があいまいな部分もあったりして、ちょっと書くのがしんどくなってきました。これからはその日やったことを、HOTな状態のまま書いていきたいと思います。画面部品マスタ系テーブルから項目取得セレクトボックスで表示こんな画面部品をつくりたいと考えました。参考リンクその1:画面部品 - C/pHeR Memo - Java とか。Eclipse とか。その2:Cubby - Tips 集ひと月前にこれらの記事を見たときはさっぱり意味がわかりませんでした。が、あらためてサンプルを見なおしてみたところ、作れそうな気がしてきた 阅读全文
posted @ 2012-09-29 16:34 Aggavara 阅读(770) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 5週目 - 130単位の続きです。いろいろやっていたと思うのですが、あまりメモに残してなかったのでざっくりと。間違った情報があったら申し訳ありません。2/9~2/13エンティティとテーブルの再構築とりあえずIntegerとString(VARCHAR)で開発を進めていた実際の現行テーブルは数値にはNUMERIC、文字列にはCHARが使われていたというわけで型を揃えることにしたgen-entityを行うと以下のようになったNUMERIC (DB2) → BigDecimal (Java)CHAR(DB2) → String (Java)gen-ddlでは以下のようにな 阅读全文
posted @ 2012-09-29 16:33 Aggavara 阅读(334) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 4週目 - 130単位の続きです。DBアクセス処理を実装していくにあたり、O/RマッパーのS2JDBCを本格的に使い始めました。2/2~2/6複数のスキーマからエンティティ自動生成スキーマ毎にxml定義を作成してみる「schemaname」に対象のスキーマ名を記述Gen-Entityのみで、他のタスク(Geb-Namesとか)には不要それぞれのxmlをAnt実行(ただし基本的に最初の1回しか実行しないため、1ファイルで都度書き換えればよいのかも)DDL生成時(Gen-DDL)は、1つのxmlを実行すればよい(エンティティでの指定が必要(後述))参考:Seasar2 阅读全文
posted @ 2012-09-29 16:32 Aggavara 阅读(337) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 3週目 - 130単位の続きです。この週でView(JSP)が一通り完成しました。1/26~1/30開発環境再構築何かの拍子に設定を間違えたかで、エラーが出るようになったためSAStruts開発に特化した「EclipseIDEforSAStrutsDevelopers」を新たにインストール(Eclipseは3.3、Tomcatは6.0.16)日本語化やプラグイン導入の手間が省けて、かなり楽に済んだ配布元:404 Error - Not Found導入手順:404 Error - Not FoundDoltengでプロジェクト再作成後、バックアップしておいたファイルを 阅读全文
posted @ 2012-09-29 16:31 Aggavara 阅读(449) 评论(0) 推荐(0) 编辑