Teedaでは画面からの値の検証はJSFのValidatorを使います。 一般的な入力チェック類はほとんどこれでまかなえます。 (標準で準備しているもので足りない場合は、個別に作成しておいたほうが良いです。そんなに難しくありません。) しかしそれ以外のロジックでエラーになったときには、どうするのでしょうか。 簡単です。Validatorと同様にFacesContextにメッセージを詰めてしまえばいいのです。 if(someLogicFail) { facesContext.addMessage("clientId", new FacesMessage("summary_key", "detail_key")); } clientIdのところは、messageで出力する場合には指定しなくてはいけません。 formのidがformで入力項目のidがaaaとすると、form:aaaのようになりま
◆layout.html 以下はレイアウトhtmlです。一応のせときます。 onTeedaErrorでエラーが発生したテキストボックスのbgcolorが指定してあります。どっかのサンプルどおりですな・・・へへh。 <pre class="prettyprint"> <html xmlns:te="http://www.seasar.org/teeda/extension"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>サンプルレイアウト</title> <link href="https://static.fc2.com/css_cn/common/headbar/120710style.css" rel="stylesheet" type="text/css" me
ユースケース共通のロジックは親クラスとなる Page (←というか POJO)に実装しちゃいなよっ!ってのは新鮮。それに深いよ。これ。(えらそ〜だな…すみません…)ひがやすを blog - Service を使う際の方針Teeda で Service を使う際の方針 - 出羽ブログ 〜はてな版〜Teeda で Service を使う際の方針(その3) - 出羽ブログ 〜はてな版〜ただ id:dewa さんも書いてるけど、誤解が無いように注意がいる箇所として、重複部分の全ては継承と述べているのではないです。次のように、委譲モデルも併用しています。 複数のユースケースで使われるロジックは、共通のユースケースを抽出し、共通のユースケース名Serviceクラスに持たせる。なんとなく、このような設計にした方が良いとは思いますが、なぜ、上記のような局面において、継承モデルではなく、委譲モデルを採用した
Teedaで使用するカスタムValidatorの作成のテスト。参考にしたのはValidatorのカスタマイズについてのページなのですが・・・Validationロジックは具体的にはどのように書けば? ってことで、Teedaのソースを参考にしながら作成してみました。 public class SampleValidator implements Validator { public void validate(FacesContext context, UIComponent component, Object value) throws FacesException { if (value == null || value.equals("")) return; if (!checklogic(value)) { FacesMessage message = new FacesMessag
Teeda Extensionにおけるカスタマイズの方法について このドキュメントではTeeda Extensionにおけるカスタマイズ方法について記述します. ビュールートパスのカスタマイズについて Validatorのカスタマイズについて Convererのカスタマイズについて コンポーネントのカスタマイズと新しい規約の導入について XHTMLのパーズについて リダイレクトについて outputTextについて ラベルについて JavaScriptについて ビュールートパスのカスタマイズについて Teedaでは動的なHTMLのURLは <context>/view/aaa/bbb.html のようになります. この view のことを「ビュールートパス」と呼びます. ビュールートパスを変更するには,convention.dicon で指定します. 例えばビュールートパスを hoge に
@ 独自バリデータの作成標準のバリデータのようにアノテーションで指定できるように。速度とかメモリ消費とかをあまり気にしなければ正規表現バリデータを拡張するのが良いでしょう。 例として電話番号のバリデータを作成。空のチェックは required に任せるとして、中身があるときのみバリデーションするように。規約に従って、パッケージは「ルートパッケージ.validator」。 public class TelNoValidator extends TRegularExpressionValidator { public TelNoValidator() { super(); setPattern("(" + "0[0-9]0-[0-9]{4}-[0-9]{4}" + "|" + // 携帯 "0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}" + // 一般 ")"); // あら
「登録」→「確認」→「完了」のinsert処理を呼び出すメソッドは、doOnce と doFinish のどちらを使うべきだろうか? doOnceを使った場合、ダブルサブミット対策はできるが、登録完了後に、完了ページから登録ページへ行くと、登録ページに以前の入力値が残っている。これは、なんとしても避けたい。だからと言って、確認ページ内で doFinish メソッドを使うと、ダブルサブミット対策が手薄になってしまう。doOnce と doFinishの併用ができると良いが、現段階(Teeda 1.0.10)はできない。うーん、困った。 あまり、スマートなやり方ではなく、裏技っぽいが、以下のようにすると、この要件を満たすことができる。 @RemoveSession(name = "javax.faces.internal.scope.SubApplicationScope") public C
下記のTeeda のWikiページによると、 http://www.seasar.org/wiki/index.php?Teeda%2FgettingStarted#p1b893e1 doFinish の使い方は、以前まで、次のように記載されていました。 doFinish doFinishでもTransactionTokenが発行され、DoubleSubmit防止のJavaScriptがrenderされる。 それに加え、doFinishでは、サーバ側でviewIdごとに一定数管理している Pageの状態をすべて破棄する。 しかし、どうやら、上記の説明は間違っていました。今は、次のようになっています。(というか、私の方でshotさんに確認して、書き換えさせて頂きました。) doFinish doFinishでは、サブアプリケーションスコープ内で管理しているプロパティを全てクリアします。 内部
下記によると、disabledにした項目もhiddenを用意しておくと引き継げるとあるのですが、引き継げませんでした。 http://ml.seasar.org/archives/seasar-user/2007-July/009208.html たしか、この2つは引き継がれたと思います。 selectManyCheckbox selectOneMenu が、その他はうまくいかなかったように記憶してます。 inputRadio selectOneRadio selectBooleanCheckbox hiddenの位置によっても、動作が変わっていたように思います。 また、disabledの項目を送信(サブミット)してしまうと、サブアプリケーションスコープやページスコープで保持していても、空の値で上書きされてしまっていたと思います。 結局、ラジオボタンやチェックボックスにdisabledは使
賃貸暮らしのわが家の地震対策【揺れから命を守る編】 以前のブログでも記載した、防災の優先順位に基づいて対策を進めています。まだ手をつけられていない部分もありますが、ある程度まとまってきたのでざっくりとご紹介していきます。 優先順位別に改善していっているため、今回は主に地震の揺れ対策がメインになります。…
金土日とネットから隔離されます。 むう、Teedaの機能紹介書きたかったけど残念。 その間に裏方作業でもいろいろやってます(出来たら)。 ちょっと見やすくしてみました。(なんかおかしかったら指摘ください。) 多分こんな感じでしょう。括弧の中はHotDeploy時に各コンポーネントの 扱いについてちょろっと書いてみました。 詳しくはS2の*OndemandCreatorを見てみてください。 ルートパッケージを「examples.aaa」とすると examples +aaa +web +[サブアプリケーション] -AaaPage(末尾がPageで終わること。Instance属性はrequest。ExternalBindingあり) -AaaAction(末尾がActionで終わること。Instance属性はrequest。ExternalBindingあり) -AaaService(末尾がSe
AOPとは何か? http://s2container.seasar.org/ja/aop.html ここにはこういう説明があります。 AOPとは、Aspect Oriented Programming (アスペクト指向プログラミング) の略です。 プログラム本来の目的とは異なる処理を内部に埋め込まず、外から織り込むように作ることです。 開発者はプログラム本来の目的だけに集中したいのですが、異なる処理、つまりロギングやトランザクション管理などにも気を配る必要があります。これはこれまでの開発の常識だったと思います。AOPでこの問題に対処できます。 またこのような説明もあります。 オブジェクト指向では顧客からの要求である機能(Core Concern)とロギング機能、宣言的トランザクション、DBコネクションの取得・解放、例外処理、セキュリティ機能や分散処理などの非機能要求 (Crosscutt
昨日作ったCometチャットを、多少まともな形に修正。動かしてみたい人は、昨日の日記を参考にしてください。 (削除済み) スレッド制御を、シンプルに。 時間の扱いは、サーバ側だけに。 メッセージ表示の扱いは、クライアント側に。 ま、こんなもんですかね。コネクション周りは、もうちょっと融通の効く形にしないとダメだけど、理想の形が分からん。ちょっと世間を見て回るかー。 あと、日本語が通らん。初心者丸出し orz 30時間の音楽再生が可能なウォークマンケータイ「W42S」とか、 CDMA 1X WINに対応したタフネスケータイ「G'zOne W42CA」とか、 Bluetoothレシーバー付属で1GBメモリ内蔵の「W44T」とか、 すげー魅力的なケータイを出しておきながら、なんで3つとも、おサイフケータイ非対応なんだよー! 既にコンビニとかSuicaをケータイに頼ってるんで、いまさら元には戻れ、
@ 規約早見表が欲しい規約ベースなので、id とプロパティの対応の一覧が欲しいなあ。たとえばこんな感じ。機能名とか適当。(※この表は不足や間違いがある可能性があります。また、リンク先が正しくない場合があります) 機能タグおよび属性HTML上のidプロパティ名
このページでは「Java Expert #01」に関する補足情報を公開しています。 Hot Deploy実演ムービーのブラウズ 78ページ,特集2の2章で紹介しているHot Deploy実演ムービーをブラウズすることができます。 Hot Deploy実演ムービー サンプルファイルのダウンロード 特集2の3章で取り上げているサンプルアプリをダウンロードできます。 85ページ,Teeda Coreのサンプルアプリ 87ページ,Teeda Extentionのサンプルアプリ 108ページ,Teeda+S2Daoのサンプルアプリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く