Tapestry

Tapestry 5.0.17(RC2) 出た

It contains a change to URL generation (to avoid occasionally empty href's in links). It also adds localizations for Japanese and Greek, and some documentation fixes. [ANNOUNCE] Tapestry 5.0.17 「localizations for Japanese」とは、バリデー…

コンテキストパラメータのエンコード方法、SEO的には以前の方が良かった?

コンテキストパラメータのエンコード方法が変わるようです - らくさん で書いたように、5.0.16からコンテキストパラメータのエンコード方法がかわりましたが、新しい方法だと日本語の文字は $xxxx にエンコードされるので検索エンジンはキーワードとして認識…

コンテキストパラメータのエンコード方法が変わるようです

Tapestry-5.0.16からコンテキストパラメータのエンコード方法が変わるようです。 I'm actively working on the issue with URL encoding/decoding. Because of the differences between Jetty and Tomcat, I'm abandoning standard URL encoding (i.e., %2f …

そろそろTapestryについても

何か言っておきたいんだけど、最近全然Tapestryいじってないorz。Tapestry5使ってるサイトは、最近機能追加とかしてないしバグも出ないからかなり放置状態。5.0.12でパッケージ名が変わった(org.apache.tapestry -> org.apache.tapestry5)ところまではわかっ…

Formコンポーネントで clientValidation="false" にしたとき、余分なマークアップも消す方法

追記: ソース修正しました。BaseValidationDecoratorは中身からっぽで何もしないクラスなので毎回newするのは無駄でした。 Formコンポーネントで clientValidation="false" にすると、ブラウザ上での入力値検証が行われなくなりますが、出力されるHTML上には…

Tapestry 5.0.11 is beta

The Tapestry team has voted Tapestry 5.0.11 to be the first beta release of Tapestry 5. This means that the focus is shifting from adding new features to fixing bugs and adding stability (and adding documentation), with the goal of produci…

5.0.11の quickstart archetype でプロジェクトが作成できない

mvn archetype:create -DarchetypeGroupId=org.apache.tapestry \ -DarchetypeArtifactId=quickstart -DgroupId=org.example -DartifactId=myapp \ -DpackageName=org.example.myapp -Dversion=1.0.0-SNAPSHOT Tapestry Quickstart Archetype - Quickstart A…

Zoneコンポーネント

http://kuramo.ch/tapestry5/tapestry-core/ja/guide/ajax.html に書かれているZoneコンポーネントについて書きます。Zoneとは何か、を要約すると次のようなものです。 ページの一部だけAjaxで書き換えたい部分にZoneコンポーネントを使う。 ActionLinkコン…

Tapestry-5.0.11

5.0.11が出ました。ダウンロードページなどはまだ更新されてないようですが、Mavenのリポジトリからはすでに利用できるようになってます。以下、リリースノートから目に留まった変更点2つ。 @Propertyアノテーション ページやコンポーネントクラスのフィー…

ファイルアップロードのフォームでTextFieldなどの値が文字化けする

tapestry-uploadが壊れてますMLのこの投稿で指摘されてるように、ファイルをアップロードしようとするとNullPointerExceptionが発生してしまいます。この投稿にあるように、springのCharacterEncodingFilterを使うと回避できます。追記: Utf8Filterを、Reque…

パッチが不完全だった

https://issues.apache.org/jira/browse/TAPESTRY-1988 で採用されたパッチですが、不完全だったようだ→ https://issues.apache.org/jira/browse/TAPESTRY-2054 というわけで新たにパッチを投稿した。 この Page Activation Context 周辺の実装は、スラッシ…

5.0.7

昨年末にTapestry-5.0.7がリリースされました。以下は私が5.0.6からアップグレードした際に問題となった点です。 tapestry-uploadが壊れてます MLのこの投稿で指摘されてるように、ファイルをアップロードしようとするとNullPointerExceptionが発生してしま…

パッチ取り込んでもらえた

http://d.hatena.ne.jp/butyricacid/20071219/1198035790 のパッチを取り込んでもらえました。 Thanks for the patch and the great research! いやー嬉しいです。 オープンソースプロジェクトにパッチを送ったのは初めてだったんですが、私の書いたコードが…

バグがあったのでパッチを送ってみた

Page Activation Context や Component Context に日本語が通らなかったり、/ など一部の文字が通らなかったりするので直してみた。https://issues.apache.org/jira/browse/TAPESTRY-1988#action_12553214以前から何度か同様の問題がMLやJIRAに出ているよう…

Mixin

Mixin、説明として適切な例がなかなか浮かばないのですが、とりあえず私が最近書いたMixinを晒してみます。 import org.apache.tapestry.MarkupWriter; import org.apache.tapestry.annotations.MixinAfter; import org.apache.tapestry.annotations.Paramet…

5.0.6

長いことほったらかしにしてしまいました。5.0.6も出たことだし、頑張って再開しようと思います。 とりあえず、今作ってるものを昨日5.0.6にアップグレードしたので、5.0.5から5.0.6にアップグレードする手順を書きます。 pom.xml内のTapestryバージョンを5.…

Tapestry5で日本語を使う方法 (2)

http://d.hatena.ne.jp/butyricacid/20070317/1174090834 に書いたようなことをしなくてもTapestry5.0.5から日本語を扱えるようになりました。5.0.5からContent-TypeのcharsetがデフォルトでUTF-8になったので、特別なことをしなくてもそのまま日本語が扱え…

レスポンスに404とか返したいとき(解決)

追記: 以下のコードは5.0.7以降では動きません。http://d.hatena.ne.jp/butyricacid/20080105/1199519835 に5.0.7用の変更点を書きました。 http://d.hatena.ne.jp/butyricacid/20070517/1179387811 の問題ですが、コメントに頂いたActionResponseGenerator…

レスポンスに404とか返したいとき

例えば、Thumbnailというページコンポーネントがあったとします。Thumbnailページには、ここに書かれているActivation Contextを受け取る次のメソッドがあるとします。 StreamResponse onActivate(long thumbnailId) { return new StreamResponse() { public…

XHMTLで出力

http://d.hatena.ne.jp/coolstyle/20070417の閉じタグの話について。DefaultMarkupModelそのままならscriptタグにはEndTagStyle.REQUIREを返すので、ちゃんと とレンダリングしてくれます。なので、traditionalなHTMLでよければ問題無さそうで、XHTMLMarkupM…

Enum型をSelectコンポーネントの値に使う時のOptionのラベルをカスタマイズする

次のEnum型を使います。Screencast#4に出てくるSelectコンポーネントと同じものです。 public enum Sex { MALE, FEMALE, REFUSES_TO_SAY } また、次の Start.html, Start.java をそれぞれ用意します。 <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <title>myapp Start Page</title> </head> <body> </body></html>

カスタムバリデータ

前回に続きバリデータについて。今のところ組み込みのバリデータは required,minlength,maxlength,min,max の5つしか無いようなので、正規表現にマッチするかどうか検証する pattern バリデータを作ってみます。 org.apache.tapestry.Validator インターフェ…

バリデーションメッセージのカスタマイズと日本語リソース

Tapestry 5では入力のバリデーションをアノテーションで設定できるようになっています。入力値のsetterメッソッドに @Validate("required") とアノテーションするだけで、次のようなエラーメッセージを出してくれます。ここまではとても簡単でよいのですが、…

Tapestry5で日本語を使う方法

7/10追記: Tapestry5.0.5から、ここに書いたようなことをしなくても日本語を扱えるようになりました → http://d.hatena.ne.jp/butyricacid/20070710/1184016763 Tapestry5はまだまだ開発途中ということもあってか、そのままでは日本語が使えないようです。テ…

Tapestry5を試す

Tapestry5がなかなか良さそうなので試してみた。Maven2を使うと簡単です。http://tapestry.apache.org/tapestry5/quickstart/ に書かれているとおり、次のコマンドを実行するとTapestry5のプロジェクトが出来上がります。org.example や myapp などの箇所は…