iPhone/iPadに搭載されているsafariにおける、Javascriptのイベントをまとめたドキュメントを見つけました。
Safari Web Content Guilde / Handling Events
タッチ用にtouchXXXみたいなイベントが追加されているんですね。ピンチ用のイベントはないようですが、iOS4で追加されていないんですかね。
いつか使うときが来るかもしれないのでメモ。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| « 8月 | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | ||
iPhone/iPadに搭載されているsafariにおける、Javascriptのイベントをまとめたドキュメントを見つけました。
Safari Web Content Guilde / Handling Events
タッチ用にtouchXXXみたいなイベントが追加されているんですね。ピンチ用のイベントはないようですが、iOS4で追加されていないんですかね。
いつか使うときが来るかもしれないのでメモ。
TomcatでJSFを使っていると、いつもある仕様に悩まされています。
それは、入力フィールドが空白の場合にバッキングビーンのフィールドの型がString型なら長さが0の文字列として入力され、Integer等の数値型なら0が設定されてしまうということです。
String型の場合はまだ分かるのですが、数値型の場合は入力されなかったのか0が入力されたのか区別がつかないんです。
今まではバッキングビーンのフィールドは全てString型で対応していたのですが気持ち悪いので解決方法を探してみました。
リッチクライアントだ、RIAだ、と言われてから久しい昨今、Webアプリケーションのユーザインタフェースは相変わらずIEが使われていることが多いと思いますが、皆さんはいかがでしょうか。 (more…)
国内の企業が提供しているパブリック型のクラウドサービス(というかIaaS)を探してみました。
料金とスペックは一番安いプランにしていますが、固定IPは必須としました。 (more…)
とある案件で、カレンダーでの入力とファイルアップロードの機能が必要になりました。
フレームワークは、Mojarra + SpringFramework + Hibernate ですが、せっかくJSF2を使っているので、既存のコンポーネントが使えないか探してみました。 (more…)
Mojarra(GlassFish)を使っていて、勝手にBeanValidationが動作するので停止させる方法を探していました。
JSF2 の Final Draft では、「javax.faces.validator.DISABLE_BEAN_VALIDATOR」を true にすればよいと書いてあったのですが、停止できませんでした。
そこでソースコードを辿ってみたところ、WebConfigurationクラス に定義がありました。どうやら BeanValidation を停止させるには「javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR」を true にすればよさそうです。
・・・どちらが正しいのでしょうか。 僕の見ていた資料が古いんですかね?
FaceletsではJSFのタグ(ui:repeat等)とJSTLのタグ(c:if等)が使えます。
ですが、評価されるタイミングが違うので混在すると思った通りに動かないことがあります。
JSFのタグはレンダリングの際に評価され、JSTLのタグはコンパイルの際に評価されるようです。
たとえば、以下のような書き方をしても、c:if タグの条件は思った通りに評価されません。
<ui:repeat var="member" value="#{members}">
<c:if test="#{member.admin}"><span class="admin">ADMIN</span></c:if>
<c:if test="#{!member.admin}">MEMBER</c:if>
<br />
</ui:repeat>
ui:repeatの代わりにc:forEachを使うか、次のようにc:ifの代わりにui:fragmentを使えば同じタイミングで評価されます。
<ui:repeat var="member" value="#{members}">
<ui:fragment rendered="#{member.admin}"><span class="admin">ADMIN</span></ui:fragment>
<ui:fragment rendered="#{!member.admin}">MEMBER</ui:fragment>
<br />
</ui:repeat>
最近、「○○するための○個の方法」みたいな記事が増えてきているので、敢えて乗ってみます。
今回は、「Firefoxを早くするための2つの方法」です。
一つ目の方法は SQLite Optimizer アドオンを使います。詳しい使い方は『Firefoxのデータベースを最適化して高速化を図るアドオン「SQLite Optimizer」』を参照してください。
二つ目の方法は、外部ツールのFIrebootを使います。詳しい使い方は『アドオンから不要な言語ファイルを削除してFirefoxの起動を高速化するソフトウェア「Fireboot」』を参照してください。
Hibernate Validator を Hibernate と組み合わせるとINSERTやUPDATEするときに自動的に動作しますが、アプリケーションレベルでバリデーションを行っているときは、この動作が只のオーバヘッドになってしまいかねません。
この自動バリデートを停止するには、hibernate.validator.autoregister_listeners を false にすればいいみたいです。
Hibernate Validator のリファレンスマニュアルによると『Such a need is very uncommon and not recommended.』らしいですが(^^;(2010年2月17日追記)
これは Hibernate Search を使うときの警告みたいですね。単体で使うときは非推奨じゃないみたいです。
参照:
Hibernate Validator: Chapter 2. Using the Validator framework
Hibernate Annotations: Chapter 4. Additional modules