Tapestryについて語ろうよ!

■ このスレッドは過去ログ倉庫に格納されています
1Ace
垢版 |
NGNG
JakartaのTapestryフレームワーク使ってますか?
日本ではなかなか情報が手に入らず、本家のドキュメントも
古いバージョンのままなので、使いたいと思って挫折した人多くありませんか?

私はTapestry2.3あたりのころにTapestryの存在を知りました。
それまではStrutsでした。
デザイナーを内輪にかかえていない我が社では外注先から戻ってきた
HTMLからJSPへの変換および、再修正依頼が非常に困難でした。
○JSPへの変換ってつまらないよね!
○デザイナーがStrutsの拡張タグ理解できるわけないだろう!
○できたとしてどうやってデザインするの?
そんなあなたにはTapestryしかありません!
ぜひ日本でもこの2chを中心にTapestryの輪を広げて
Strutsにイカレテいる古臭いプログラマーたちを見返してやりましょうよ!

ちなみに私は携帯&PC向け有料サイトでTapestry使ってます。(^o^)v
登録ユーザ○十数万人、売上○千万円程度の規模です。
携帯は全機種対応確認済みです。
携帯のブラウザのバグ的なものに対応するために、
Tapestryのソースいくつか書き換えてるけどね(^_^;

Tapestryに興味ある人レスよろしくね!
96デフォルトの名無しさん
垢版 |
NGNG
ベム、ベラ、ベロシチィ! 
妖怪人間! ジャーン♪
97デフォルトの名無しさん
垢版 |
NGNG
>>96
今どきそんなの誰も知らないよ
98デフォルトの名無しさん
垢版 |
NGNG
今後比較予定だってー
www.spacewalker.tv/tapestry/comparison.html
99デフォルトの名無しさん
垢版 |
NGNG
>>1
先こされるぞ!早く次を書けよw
100デフォルトの名無しさん
垢版 |
NGNG
キリ番ゲット!
NGNG
Tapestryとファンをダイレクトに結ぶ会員制オンラインファンクラブ「Tapestry club」。
ここでは、川畑・堂珍が積極的に参加して、いろんな企画をスタートさせていきます。
NGNG
JAVA WORLDのサンプルのZIPは解凍しようとするとディレクトリ名が変だ?
103デフォルトの名無しさん
垢版 |
NGNG
>>102
ああ、やっぱり?
おれもディレクトリ名が
「ケミストリー」になる
NGNG
appディレクトリの前にゴミディレクトリがあるみたいだし。
解凍してしまったこの変なディレクトリ消すのめんどくさ。
105102
垢版 |
NGNG
サンプル動いた。(^^)
106Ace
垢版 |
NGNG
2.JSPの欠点
JSPにはさまざまな長所、短所が指摘されているが、Tapestryと比較することに焦点を絞った場合、以下の点が欠点として強調される。逆にこれらの事項の裏返しがTapestryにおいて長所と言える。
●JSPファイルにはさまざまな言語(HTML,JavaScript,スクリプトレット,ディレクティブ,拡張タグ)が同時に含まれ、デザイナーはHTML,Javascript以外、特に頻出するスクリプトレット、拡張タグを理解できない
●JSPのスクリプトレットの書き方に標準がなく、プログラマーの能力差、経験差が大きく現れる
●HTMLタグから拡張タグへの変更が機械的で単調な繰り返しが多い
●JAVAはオブジェクト指向だが、JSPにはオブジェクト指向を感じない、デザインの再利用性が低い
107デフォルトの名無しさん
垢版 |
NGNG
>>106
次は?もっと早いペースで頼むよ
NGNG
WEBDB vol16見ながらやってるんだけど、
<input jwcid="@TextField" value="ognl:echo"/>
とか書いたら、
<input type="text" name="$TextField" value=""/>
に変換された。
これってjavascript使いたいときどうすんのさ。
name属性の値はテンプレの段階じゃわからん。
>>1は責任もって教えること。
109デフォルトの名無しさん
垢版 |
NGNG
>>108
<input type="text" jwcid="hoge@TextField" value="ognl:hoge"/>
とかすると、
<input type="text" name="hoge" value=""/>
になる。これ常識w
Form項目はすべて名前付けたほうが気持ち(・∀・)イイ!!
WEBDB vol16とかJAVA Worldの人は古いTapestry2.xの解説してるから、
Tapestryのサンプル見た方が早い場合もあるな
書くの面倒だけど、TapestryのJavaScript機能使えば別の解決法もある
それもTapestry付属のサンプル見るよろし
110デフォルトの名無しさん
垢版 |
NGNG
>>108
早く返事しろよ
  ∧_∧
( ´∀`)つゴルァ
111108
垢版 |
NGNG
>>109
昨日初めてさわったんよ。もっと教えて。
"hoge"を使うようなjavascriptだと少なくとも
テンプレHTMLの段階ではエラーになるから都合悪いって話。
NGNG
>>109
早く返事しろよ
    ∧_∧
( ´∀`)つゴルァ
113デフォルトの名無しさん
垢版 |
NGNG
おい、マキシシングル出たぞ
早く買えよ
114デフォルトの名無しさん
垢版 |
NGNG
>>111
<input type="text" jwcid="hoge@TextField" name="hoge" value="ognl:hoge"/>
とすると
<input type="text" name="hoge" name="hoge"/>
になるがJavaScriptは動くことは動く
別の書き方をするなら
<input type="text" jwcid="AAA@TextField" name="BBB" value="ognl:CCC"/>
とすると
<input type="text" name="AAA" name="BBB"/>
になる。
name属性がreserved parameterになってないTapestryのバグか仕様だな
気に入らないなら
Tapestryのソースのframeworkフォルダの
/org/apache/tapestry/form/TextField.jwc
を書き換えて、自前のプロジェクトにマイコンポーネントとして追加するべし
115デフォルトの名無しさん
垢版 |
NGNG
>>111
早く返事しろよ
 ∧_∧
( ´∀`)つゴルァ
116デフォルトの名無しさん
垢版 |
NGNG
>>115
もっとカツラがズレてないとダメだぞ

    ∧_∧
( ´∀`)つゴルァ
117デフォルトの名無しさん
垢版 |
NGNG
みんな知ってるかい?Don't you know?
http://www.dorffweb.com/index.htm?page=taptutorial
に新しいTapestryチュートリアルが出たらしい
>>44 はこれを日本語化すること
NGNG
 <input type="text" name="hoge" name="hoge"/>
なにこれ。ださっ
テンプレはPerlのHTML::Templateみたいなのがいいな。
ベロcityはイマイチだった。

>>1 は解説サイト立ち上げろ
             ∧_∧
( ´∀`)つゴルァ
NGNG
>>117
あ、こりゃ嬉しいな。PDF読んでみよう。THX!
NGNG
1.ボタンが押された際にクライアントサイドでの
 入力チェックをしたいのだが、実現可能?
2.同一のフォーム内に複数のボタンがあっても大丈夫だよね・・・?
121デフォルトの名無しさん
垢版 |
NGNG
>>119
どういたしまして You are welcome!
122デフォルトの名無しさん
垢版 |
NGNG
>>120
1.について
ValidFieldのvalidator属性に
DateValidator
EmailValidator
NumberValidator
StringValidator
のbeanに
<set-property name="clientScriptingEnabled" expression="true"/>
を入れるとクライアントサイドの入力チェックもしてくれます。
標準機能が気に入らないなら自前でコンポーネントを作りましょう。

2.について
Submitコンポーネントを使ってlistener属性に別のリスナーメソッドを関連付ければOK
<input type="submit" value="yes" jwcid="@Submit" listener="ognl:listeners.yesSubmit"/>
<input type="submit" value="no" jwcid="@Submit" listener="ognl:listeners.noSubmit"/>
この場合、Formのlistener属性は書く必要なし
123デフォルトの名無しさん
垢版 |
NGNG
>>120
早く返事しろよ
      ∧_∧
( ´∀`)つゴルァ
124デフォルトの名無しさん
垢版 |
NGNG
>>123
もっとカツラがズレてるぞ

 ∧_∧
( ´∀`)つゴルァ
NGNG
携帯用のページみたいに
同じurlでキャリアによってテンプレートを変えるってこと
Tapestryで簡単にできますか?
126デフォルトの名無しさん
垢版 |
NGNG
>>125
簡単で、やり方は3通りかそれ以上あるけど、同じurlにする理由ってあるの?
127デフォルトの名無しさん
垢版 |
NGNG
>>126
↓「ズラズレモナー」わすれてるぞ!
      ∧_∧
( ´∀`)つゴルァ
NGNG
>>126
深い意味はないです
毎回UserAgentを見て表示先を変えるのって
どうやるのが一番スマートかと思って
129デフォルトの名無しさん
垢版 |
NGNG
>>126
やり方教えて!!
130デフォルトの名無しさん
垢版 |
NGNG
        / ̄ ̄ ̄ ̄\
  ∧_∧  | でたぁ! |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 

131デフォルトの名無しさん
垢版 |
NGNG
        / ̄ ̄ ̄ ̄\
  ∧_∧  | でたぁ!  |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 
132デフォルトの名無しさん
垢版 |
NGNG
>>128
こんな感じで見ます

UserAgent   ←・・・・・・(・∀・ )
133デフォルトの名無しさん
垢版 |
NGNG
>>130>>131

どんな時もズラせろよ↓

        / ̄ ̄ ̄ ̄\
∧_∧  | でたぁ!   |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 
134デフォルトの名無しさん
垢版 |
NGNG
JavaWorld見たかい?
NGNG
設定ファイルとサーブレットマッピング、パッケージ配置の
お作法がわからん。

■パッケージpageの下にページ設定のXMLやBasePage
 を継承したクラスをおいた場合は、web.xmlにpageという
 仮想パス名でApplicationServletを割り当てないと駄目なのですが?
■hoge.applicationファイルってWEBアプリに
 ひとつだけ配置することになるのですか?
■pagegroup1というパッケージの下に配置したページから
 pagegroup1というパッケージの下に配置したページへ
 画面遷移することは可能ですか?
136デフォルトの名無しさん
垢版 |
NGNG
>>135
Tapestryのフォルダ構成の基本はこうだ。

/コンテキストルート
/WEB-INF
  web.xml
  hoge.application
  Home.html
  Home.page
  Home.properties
  /classes
    Home.class

●web.xml(全角スペース注意)
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <servlet>
  <servlet-name>hoge</servlet-name>
  <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
  <load-on-startup>0</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>hoge</servlet-name>
  <url-pattern>/app</url-pattern>
 </servlet-mapping>
</web-app>
137デフォルトの名無しさん
垢版 |
NGNG
>>135
hoge.applicationとサーブレット名のhogeを同じにしておけばよいよ
ページクラスとページテンプレートの関係はページ使用ファイルの中に書くから
同じ名前である必要はない。もちろんパッケージ名はまったく関係がない

ページテンプレートはWEB-INFの下にフラットに置く方が、
デザイナーさんにファイルを送るときにまとまってて都合がよいよ
138135
垢版 |
NGNG
>>137
なるほど。サンクス。
ボチボチサンプルアプリでも作ってみるかね。。
139デフォルトの名無しさん
垢版 |
NGNG
>>98
http://www.spacewalker.tv/tapestry
消えてるんだけど(>_<)
どういうこと?責任取れ!
140デフォルトの名無しさん
垢版 |
NGNG
俺達のTapestryは幻だったのか?
NGNG
画面A - <submit> - submitActionメソッド - <処理OK> - <OK画面>
                          |-<処理NG> - <NG画面>

こんな処理を行ないたいのですが、参考になるサンプルなどを
教えてもらえませんか?
submitActionメソッドの中で遷移先のHTMLファイルを切り替えたいのです。
142141
垢版 |
NGNG
自己レスすまそ。
requestCycle.activate("OkPage");
requestCycle.activate("NgPage");
で出来るな。
これからはヅラ直してから質問しまつ。
NGNG
>>141
目を覚ませ
終わったんだよ・・・
144141
垢版 |
NGNG
>>143
そっか、終わってたんか。
ww2の勉強に切り替えるかね。
145デフォルトの名無しさん
垢版 |
NGNG
        / ̄ ̄ ̄ ̄\
∧_∧  | ほげらっちょ!   |
 (;∀;∩)< ほげらっちょ! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 
NGNG
http://jakarta.apache.org/tapestry/
147デフォルトの名無しさん
垢版 |
NGNG
Validationの使い方教えて!
NGNG
なんかよくわからんが…
なんでわざわざsunの主流からはずれる方向を選ぶんだろ。

結局Tapestryだって、独自記述をデザイナーに理解させる必要が
あるわけだし、スクリプトレットを存在させないJSPと対して変わらんよ。
※ちなみに、初期時はともかくとして運用段階においてHTML以外を
 拒絶するデザイナー(だいたいバイト)なんて見たことない。

それに、純粋にプレゼンテーション層からビジネスロジックを
分離するのであれば、Velocityでのアプローチの方がまだましだよ。
ただ、主流じゃないからエンドユーザーへ提案しずらいのが、
そもそもの問題。
---
システムを買うのは、経営者であってデザイナーじゃないし、
経営者は知名度のある技術を好む。

どうしても分離したいのであれば、PHP+Smartyでいいじゃん。
今のところ、主流になっている組み合わせだし。
※それか、自分の趣味で遊ぶとかね。

と、ここまで書いておいて気付いたんだけど。
Tapestryの応援スレだったんだね。フレームワークスレだと思ってた…
水を差したのであれば、すいません。
NGNG
気付いたならsubmitするなよ
150デフォルトの名無しさん
垢版 |
NGNG
>>149
さんせいマンセー
NGNG
折角書いたのを捨てるのもったいない気持ちも分かるw
NGNG
それも貧乏性だろ>もったいない
153デフォルトの名無しさん
垢版 |
NGNG
びんぼー(T_T)/
NGNG
そもそもビンボーでなければ、オープンソースなんて使わないわけで。
NGNG
>>136
その配置だとHTMLファイルを書き換えるたびに
WEBコンテナを再起動しないとだめじゃない?
156デフォルトの名無しさん
垢版 |
NGNG
>>155
そうだけどそれが何か?
NGNG
つづれおり、いいよね。
NGNG
ユーガッタフレンド〜♪
159デフォルトの名無しさん
垢版 |
NGNG
>>157
はぁ?
NGNG
>157 キャロルキングだろ。たぶん
161デフォルトの名無しさん
垢版 |
NGNG
age
162デフォルトの名無しさん
垢版 |
NGNG
>>1
次はまだか?
163デフォルトの名無しさん
垢版 |
NGNG
        / ̄ ̄ ̄ ̄\
∧_∧  | ほげらっちょ!   |
 (;∀;∩)< ほげらっちょ! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 
NGNG
タペストリ
NGNG
Tapestryってなんて読むの?
NGNG
テープストーリー
167デフォルトの名無しさん
垢版 |
NGNG
つまんねぇ
168デフォルトの名無しさん
垢版 |
NGNG
>>1
次はまだかい?もう年越すぜ?
169デフォルトの名無しさん
垢版 |
NGNG
age
170デフォルトの名無しさん
垢版 |
NGNG
Tapestry のよさは、デザイン分離がクローズアップされがちだが、
もっとグレイトなのは、HTTPというプロトコル上ステートレスかつ
URL の連鎖で画面のコンテキストを追っかけるつくりになっちゃう
ところを、画面の構成コンポーネントのイベントハンドラで作り
こむ、まるで Swing みたいな設計をするところだと思うな。
その点、Struts とも Velocity とも比較するものではなく、JSF
と比較すべき存在だと思う。じゃなきゃ、Swing とかとの比較だ
な。まあ、クソスレの住人にはわからんだろうが。

このスレはめずらしく >>1 がまともかと思ったら、威張るだ
けで根性なしだったのがザンネンだ。マジにこの時期にTapestry
で成功事例もってるなら、金払っても話が聞きたかったものを。。
まわりもおだてて話させりゃいいものを、自分が理解もしていな
いのにヤヅでつぶしちまった。ほかに、Tapestry の読むに耐える
板はどっかにないもんかね?
171初期不良
垢版 |
NGNG
>>170
激しく同意
WO 触っているせいでこの重要さは身にしみてる。
オープンソースでもこんなんできるようになったとは、
と感慨ひとしおですけど実はまだきちんと触ってないヘタレでつ...
172デフォルトの名無しさん
垢版 |
NGNG
>> 171 どうもありがとう。

Tapestry も Spindle とかの IDE プラグインに可能性
の余地があって、たとえば今はハンドで書いている.page
や.jwcといったSpecificationXMLが、Dreamwaverみたい
なWYSWYGのHTMLエディタでテンプレート開いた上でダブ
ルクリックするとオートで書かれ、ページオブジェクト
のリスナーメソッドのガワが実装されるような動きをし
てくれば、まんまVBやDelphiだからね。WYSWYGなHTMLエ
ディタはすでにオープンソースでもあるし、.pageのXML
はIDEがオートで書けるレベルの内容にとどめている。
bindingの情報なんて、VBのFormファイルの中身みたい
なもんだし。JSFでもIDE充実したらそうなるだろうけど
ね。最近の両者をみていて、オイラはTapestry のほう
がJSFよりもテンプレートがHTMLということで手軽感が
あるし、力の入ったWEBデザインをするのに向いている
と感じているので、次の案件に使ってみたいと思ってる。
その点、すでに使ってるヤシの情報は漁ってるんだけ
どね。なかなか書いてくんないね。
NGNG
わりい、172だが、読み直す前にぽちっと
いっちゃって、日本語がマンセーマンみ
たいに。要は、スタンドアローンなアプリ
をVBやDelphiで作るみたいな感覚で、デザ
インに力入ったHTMLが所与できちゃった案
件でもさくさくと作れる時が近いうちに実
現するんじゃないかと。Spindle 次第では。
174デフォルトの名無しさん
垢版 |
NGNG

Kさん 好循環  Aさん 悪循環  
 (健康体)  (喘息)

1.(神が喘息であるかないかを決める)

2.K 喘息でない人 A 喘息の人は
は体力がある    体力がなくなる

3.K        A 行動力、
          五感(嗅覚)が鈍り感性が変化する

4.K&P 神は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。

5.K 変化なし   A アトピーになる

6.K 正常な感性  A 外に出なくなりさらに異常な感性になる

7.K 正常な人間   A 異常な人間(レッテル)
175デフォルトの名無しさん
垢版 |
NGNG
8.K&A 死

9.K&A      来世

10.K&A 神は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。

11.K&A 神が喘息であるかないかを決める

12.K 喘息でない  A 喘息である

13.K&A    1.に戻る

これは事実。広めようぜ

解決法:体力をつけると感覚が正常に戻り、
    アトピーも快癒に向かう。
    目安としてグランドを10週くらい。
あとはウォーキング
    2.3時間を目安にウインドーショッピングや本屋めぐり

176デフォルトの名無しさん
垢版 |
NGNG
おっ、Tapestry賛成派の意見が増えてきた
もうJAVA World出たよ>>1
177初期不良
垢版 |
NGNG
ttp://www.geocities.co.jp/SiliconValley-SanJose/2565/tapestry/tapestry.html
spindle 使わない形のドキュメントだけどみっけた
178デフォルトの名無しさん
垢版 |
NGNG
manning のアーリーアクセス+ペーパーバック後郵送の
サービスで「Tapestry in Action」買った!もちろん英
語だけど。結構いいこと書いてある。俺は買いだと思う。
NGNG
>>178 はじめの2章読めるだけで、今買う価値があるの?
はじめ2章にどれだけ有用な情報があるのかレポートよろ。
NGNG
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
181デフォルトの名無しさん
垢版 |
NGNG
>>178
URL希望
182デフォルトの名無しさん
垢版 |
NGNG
age
183デフォルトの名無しさん
垢版 |
NGNG
>>178
URL希望
NGNG
>>183
http://www.manning.com/
185デフォルトの名無しさん
垢版 |
NGNG
Tapestryホームページがリニューアル
http://jakarta.apache.org/tapestry/
Tapestry3.0beta4も出たぞ
NGNG
>>178
書籍紹介サイト?
in Actionシリーズか。
いろいろシリーズがでているもんだな。
187デフォルトの名無しさん
垢版 |
NGNG
age
188デフォルトの名無しさん
垢版 |
NGNG
Tapestryのうまい使い方載ってるサイトない?

ソースコードサンプル付きで。


すでにStrutsで開発しているときにTapestryを導入するとしたら
どう対応すればいんだろう?



カスタムタグを使って作ったJSPファイルを
また修正しないといけないとか?
NGNG
>> 188
VとCを作り直す対応だけでOKですよ〜
190デフォルトの名無しさん
垢版 |
NGNG
>>188
StrutsからTapestryに移行するには、該当ページのJSPとActionを書き換えになる。
JSPの方はカスタムタグからTapestryの該当するコンポーネント指定に1対1で書き換え、
ActionはpageBeginRenderとformSubmitリスナとactivateExternalにメソッドを分割して
DBアクセスまわりのロジックはフルコピー可能。
ActionFormのresetはPageRenderListenerインタフェースを実装してpageBeginRenderにコピー可能。
ActionFormのvalidateはPageValidateListenerインターフェースを実装してpageValidateRenderにコピー可能。
return mapping.getInputForward();はreturn;にするだけ
return mapping.findForward("hoge");はcycle.activate("hoge");return;だけ
ほとんど1対1に変換可能だから、Struts→Tapestry変換ソフトも作成可能と思われる。
191デフォルトの名無しさん
垢版 |
NGNG
>>188
ActionFormのプロパティは、ページクラスにabstractでget/set***を作成し、
ページ仕様ファイルにpropertyの名前と型を記述する
192デフォルトの名無しさん
垢版 |
NGNG
>>190
へ〜
193デフォルトの名無しさん
垢版 |
NGNG
新リンク発見
http://www.milkstand.net/fsgarage/archives/000220.html
NGNG
>>193
ネタにしろってことですか?
195デフォルトの名無しさん
垢版 |
NGNG
Tapestry3.0beta4ってどうやって使うの?
196デフォルトの名無しさん
垢版 |
NGNG
>>195
おれもしりたい
■ このスレッドは過去ログ倉庫に格納されています