Tapestryについて語ろうよ!

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

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

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

Tapestryに興味ある人レスよろしくね!
512デフォルトの名無しさん
垢版 |
NGNG
さて、HiveMindがRCになったわけだが。
NGNG
>>512
何それ?
NGNG
なんか組み立てロボット。
ラジコンになった。
NGNG
>>514
ああ、ロボコンか。
NGNG
>>515
そう。
このスレは、それについて語るスレ。
板違い。
517デフォルトの名無しさん
垢版 |
NGNG
age
518デフォルトの名無しさん
垢版 |
NGNG
あげ
519デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
Tabesptryって消えそうですね。少なくとも日本じゃ流行らなそう・・。
NGNG
流行ってなくてもおれは使う!!
何故なら楽だし楽しいから。
NGNG
>>361
523デフォルトの名無しさん
垢版 |
NGNG
JavaScriptをTapastryScriptで記述するのって手間じゃないですか?
JavaScriptで画面遷移の制御している画面では書き換えが面倒な気がします。

ちなみに、TapestryScriptを使用するとHTML画面でのJavaScriptチェックはできなくなりますよね?
NGNG
これからはYSFですよ。
525デフォルトの名無しさん
垢版 |
NGNG
>>524
YSFとS2JSFが一緒になるらしい。

9/9の日記参照
http://d.hatena.ne.jp/higayasuo/


どっちでもいいが、使いやすくしてくれ。
526デフォルトの名無しさん
垢版 |
NGNG
FRAMESETの使い方教えてください。
527デフォルトの名無しさん
垢版 |
NGNG
age
528デフォルトの名無しさん
垢版 |
NGNG
TapestryアプリケーションでURLを一般的な***.html風にする一番きれいな方法は
どうすればいいでしょうか?
1.PageLinkを使わず、自作のFilterで***.htmlがきたら/app?service=page/***にフォワードする
  欠点:ステートフルやセッションを使うのが一苦労
2.AbstractEngine#extractServiceName,EngineServiceLink#constructURLなどを書き換える
3.BaseEngine,AbstractService,EngineServiceLinkを継承してextractServiceName,constructURLをオーバーライトする
4.他の方法あったら教えて
NGNG
真っ黒メディアFLEXは?
530デフォルトの名無しさん
垢版 |
NGNG
>528
3.1で対応する、とMLにあった。
NGNG
>>529
Flex 面白そうだよね。JSP ライクなタグってのが気になるが...
トライアル版登録して試してみようかな。
NGNG
flexって157万か・・・
NGNG
>>528
アドレスバーを偽装する。
NGNG
>>532
真っ黒メディアだ・・・
535デフォルトの名無しさん
垢版 |
NGNG
age
536デフォルトの名無しさん
垢版 |
NGNG
age
537デフォルトの名無しさん
垢版 |
NGNG
Tapestryのコンポーネントをパレット表示するEclipseプラグイン
http://www.behindthesite.com/blog/C1931765677/E1305840788/index.html
NGNG
>>537
ぬぬ!これは激しく便利なヨカン!
539デフォルトの名無しさん
垢版 |
NGNG
Tapestry3.0.1が近いね
NGNG
Tapestry3.1 and HiveMind1.0キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!
541デフォルトの名無しさん
垢版 |
NGNG
>>540
Tapestry3.1はまだだろ!どこの情報だ???
542デフォルトの名無しさん
垢版 |
NGNG
age
543デフォルトの名無しさん
垢版 |
NGNG
age
544デフォルトの名無しさん
垢版 |
NGNG
age
545デフォルトの名無しさん
垢版 |
NGNG
age
546デフォルトの名無しさん
垢版 |
NGNG
Tapestry3.0.1出たよ
547デフォルトの名無しさん
垢版 |
NGNG
age
548デフォルトの名無しさん
垢版 |
NGNG
tapestry 3.0.1 です。
<form>
 <input jwcid="@TextField" value="ognl:foo"/>
 <input jwcid="@Submit" listener="ognl:listeners.hogeAction"/>
 <input jwcid="@TextField" value="ognl:bar"/>
 <input jwcid="@Submit" listener="ognl:listeners.fugaAction"/>
</form>
という構造で、上の submit が押された場合、
setFoo → hogeAction → setBar という順でメソッドが呼ばれるようなのですが、
これの回避方法はありますか?
foo の内容を hogeAction で使いたいのですが。
NGNG
>>548
呼出しが setFoo, hogeAction の順なら、foo の内容を hogeAction で
使えるような気がするんですが、"bar の内容を hogeAction で使いたい" の
書き損じでしょうか...?
550548
垢版 |
NGNG
>>549
typo でした。
「bar の内容を、 hogeAction で使いたい」が、やりたい事です。

誰か教えてage!
NGNG
>>550
試してないので憶測ですが、もしページテンプレート中に書かれた順番で
メソッドが呼び出されるんだとしたら、
<form>
 <input jwcid="@TextField" value="ognl:foo"/>
 <input jwcid="@TextField" value="ognl:bar"/>
 <input jwcid="@Submit" listener="ognl:listeners.hogeAction"/>
 <input jwcid="@Submit" listener="ognl:listeners.fugaAction"/>
</form>
という順になるように書くのではダメですかね?
↑だとページがレンダリングされたときに TextField と Submit の
位置関係が...というのであれば、あんま好みじゃないですけど例えば
<form>
 <table>
  <tr>
   <td>
    <input 中略 value="ognl:foo" /><br />
    <input value="ognl:bar" />
   </td>
   <td>
    <input listener="ognl:listeners.hogeAction" /><br />
    <input listener="ognl:listeners.fugaAction" />
   </td>
  </tr>
 </table>
</form>
とか。
(個人的には div ブロックで float にするとかの方が好みですが)
552デフォルトの名無しさん
垢版 |
NGNG
タペストリーでhttpsで接続するにはどうしたらよいでしょうか?
例えばcycle.activate( pageA );としてpagaAを表示する際にhttpsで接続するにはです。

やっぱりweb.xmlに記述するんですかねー? その場合の記述方法は?
553デフォルトの名無しさん
垢版 |
NGNG
RedirectExceptionでhttpsなURLにリダイレクトするというのは駄目?
554デフォルトの名無しさん
垢版 |
NGNG
TiA本を読み終わっての、Tapestryのいい所といまいちな
感じの所をつらつらと。

いい所:
デザイン完全分離、コンポーネント、ドメインロジックとの
容易なグルーイング、アセット管理、イベントベース処理、OGNL

いまいち?:
直感的でないフォームのwinding/rewinding、認証サポート、
クライアントサイドスクリプトのサポート

どっちとも言えず:
バリデーション

かなりというか Struts みたいな原始的なのと比べるのが
馬鹿らしいほど高水準な割に、見通しも悪くなくて結構好みな感じ。
コンポーネントも結構簡単に作れるから、自前コンポーネント
ライブラリの整備も結構急ピッチにできそう。


555デフォルトの名無しさん
垢版 |
NGNG
学習中です。jwc を作ってみたりしています。
BaseComponent を extend したコンポーネントクラスで、
与えられた parameter を元に、かくかくしかじかの前処理を行ってから
コンポーネントの表示を行いたい場合、
renderComponent をオーバーライドして、かくかくしかじかを行ってから
super.renderComponent を呼べばOKでしょうか。
NGNG
Tapestryって、なんでいいものなのに広まらなかったんだろうね。
NGNG
>>361
NGNG
日本語の資料ってないの?
JavaWorldの去年の特集くらい?
NGNG
びっくりするくらいにない
NGNG
タペ専門書ってないの?
「Jakartaナントカ」とか「オープンソースナントカ」みたいな本の1コーナーでしかないのかな。
NGNG
Tapestry in Action の和訳版が出れば嬉しいんだけどねー。
NGNG
inActionが訳されないようなモノは、専門書も出ないってことだな。
563デフォルトの名無しさん
垢版 |
NGNG
セッションタイムアウト時の
Your session has timed out.
Web applications store information about what you are doing on the server. ....
という画面を別の画面に差し替えたいのだが
どうすればよいのだろう。
564デフォルトの名無しさん
垢版 |
NGNG
.page や .html を、.application と同じディレクトリにずらずら並べないで、
アプリケーションの機能ごとにディレクトリを作ってその下に置いた場合、

.application で
<page name="Pagename" specification-path="/path/to/Pagefile.page"/>
を沢山書かなくてはダメですか?
<a jwcid="@PageLink" page="/path/to/Pagefile.page">aaa</a>
って書きたい…。
565デフォルトの名無しさん
垢版 |
NGNG
>>564
そのとおりなので、Tapestry は欠陥品。
ちなみに
requestCycle.activate("path/to/Pagefile");
となら書ける。謎。
566デフォルトの名無しさん
垢版 |
NGNG
ハローTapestry Fun!
TapestryのPageLinkクラスを修正して、
<a href="Hoge.html" jwcid="@PageLink">gotohoge</a>

<a href="app?service=page/Hoge">
と出力するのは簡単ですよ
NGNG
>>566
じゃあそういうクラスと jwc 書いて公開して。
ついでに >>564 を解決する jwc も公開して。
568566
垢版 |
NGNG
>>567
●org.apache.tapestry.link.PageLink.jwc
1.hrefをreserved-parameterからformalParameterにする
<reserved-parameter name="href">
→<parameter name="href" type="java.lang.String" direction="in" required="no"/>
2.pageパラメータの必須属性を消す
<parameter name="page" type="java.lang.String" required="yes" property-name="targetPage" direction="in"/>
→<parameter name="page" type="java.lang.String" required="no" property-name="targetPage" direction="in"/>

●org.apache.tapestry.link.PageLink.java
1.hrefパラメータのgetterメソッドを追加
 public abstract String getHref();
2.pageパラメータが指定されないときhrefパラメータを取得し、スラッシュと拡張子を切る
 下記を挿入
 ...
 if(parameter == null){
  parameter = getHref();
  parameter = parameter.substring(parameter.lastIndexOf("/") + 1);
  parameter = parameter.substring(0, parameter.lastIndexOf('.'));
 }
 return getLink(cycle, Tapestry.PAGE_SERVICE, new String[] { parameter });

ちなみにおいらはPageServiceとかAbstractEngineとかweb.xmlを書き換えて
<a href="Hoge.html" jwcid="@PageLink">gotohoge</a>を
<a href="Hoge.html">gotohoge</a>と出力させるようにしてるっす
NGNG
>>106
Aceはどこ行った?
NGNG
PageLink を書き換えるんじゃなくて、継承とオーバーライドで別のクラスにしないのはなぜ?
あと >>564 は、PageLink 以外にも Page を参照する Component がありそうだから面倒だなぁ、
と思いました(例えば Frame。ほかにあるかは知らない)
571デフォルトの名無しさん
垢版 |
NGNG
>>570
なんでってできあがってるHTML内の大量のリンクタグの
jwcidを書き換えるのめんどくさいからでしょ?
それからプログラマーにいちいち別途技術資料作成して、
@PageLinkより@HogeLinkの方が機能が上だから使いましょうねと
教育する時間がもったいない。
完全上位互換ですから。
後付け機能ですから、ギリ!!!
572デフォルトの名無しさん
垢版 |
NGNG
>>570
基本コンポーネントとかぶる同じ名前のコンポーネントを.application内に記述ってできるのかな?
できるのならクラスとjwcを別にして、「PageLink」コンポーネントを再定義するって方法もあるね
573デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
ぶっちゃけ、Tapestry使ってる人って何人ぐらいのチームでやってるの?
575デフォルトの名無しさん
垢版 |
NGNG
>>574
マネージャ1人、プログラマー5人、デザイナーは外部なのでわからずです。
NGNG
Tapestry in Actionを読み進めているが、
一人でTapeるのは無謀か…
NGNG
ひとりならいいんじゃない?
NGNG
>>576
オラ、1人で Tapestry + Cayenne なプロジェクト切り盛りしてるよ。
ってか絶対的なコーディング量を考えると、素の JSP + Servlet で
1人なのより楽でない? (最初の学習コストはちょっとあるけどさ)
NGNG
せめてStruts+Hibernate+Springぐらいと比べてくれ。
NGNG
比較の対象はPHPかもしれん
NGNG
Groovystryはもう使い物になるの?
582デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
頑張ってるのはわかるけど、まだ冗長な感じがするなあ。
584デフォルトの名無しさん
垢版 |
NGNG
age
585age
垢版 |
NGNG
コンポーネントの in-out なプロパティの大半は String とかプリミティブな型わけで、
getHost して setHoge されますね。(そうせざるを得ないわけですが)

MultiplePropertySelection の selectedList プロパティは、
型が List で Direction が in-out なんだけど、getHogeList で List を取って、
そのリストを書き換えてしまう。setHogeList が呼ばれない。
確かにその方が効率的。

で、これに気がつかなかったわけで、しばらく嵌ってしまった、という話でした。
586デフォルトの名無しさん
垢版 |
NGNG
age
587デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
>>361
589デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
どうでもいい事なんだけど、Tapestry in action
で作者が使っているHTMLエディタ、同じの使ってみたいと思って
調べてみたら、MacroMediaのHomeSite(しかも4.0)ですね。
もう販売中止で売ってないじゃん。。。
591デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
>>590
一応DreamWeaverMX以降でHomeSiteの機能が統合されているけどね。
重さという意味では比べものにならないな。値段も(以下略)。
英語版は開発続行らしいから、英語版買うというのもあり。

まぁこの業界、DWは使いこなせると損にはならないから、
割り切って乗り換えるのも手かも。

http://www.macromedia.com/jp/software/homesite/

TapestryなHTMLを書きやすいタグ補完とかほしいもんだけど、
どこかにないのかねぇ。
NGNG
>> 592
そういえば、Intelli-JがTapestryに対応していたような。
NGNG
>>592
これじゃだめ?
ttp://www.behindthesite.com/blog/C1931765677/E1305840788/index.html
NGNG
>>594
ツッコミがくることを承知で書くが、とてもデザイナさんにEclipse入れて
その上でHTML書け、なんて言えない(汗)。
DWかGoLiveのExtensionみたいな形で使えればベターなんだが。

埋め込みくらいプログラマがやれって話もあるが、動的表示要素が
ほとんどなページとかだと、ある程度埋めてくれないとうざくて
やってられないー。
596初期不良
垢版 |
NGNG
埋め込み作業はバイト君にやらせたいね
NGNG
>> 595
たしかに、Webデザイナーとの分業を考えるのであれば、
DWとかにadd-onであってほしいですね。
そうすると少しは普及速度があがるかな。。
っていうかその前にドキュメントの充実が先って気がするけど。
NGNG
いまさら普及しないだろ。
599タペつかっているよ
垢版 |
NGNG
ページを見ていたら偶然このサイトもtapestryを使っているのを発見
結構よくできていた。http://www.it-evangelist.com/MeetEntre/

NGNG
>>361
601デフォルトの名無しさん
垢版 |
05/01/20 21:07:04
HiveMind-1.1 alpha が出たわけだが
05/01/22 00:15:51
> 601
HiveMindって、なんかTapestryと関係あんの?
05/01/22 00:37:17
サクヤが同じ
604デフォルトの名無しさん
垢版 |
05/01/23 00:56:31
age
05/01/23 11:39:45
>>602
Tapestry3.1 からは、HiveMind と統合とか、
内部処理に HiveMind の DI を利用するとか
そんな噂あり
606デフォルトの名無しさん
垢版 |
05/01/23 20:43:42
(Tapestryではなく)Cayenne のサンプルの中に、Blogサンプルがあったよ
05/01/24 03:05:47
>> 603,605
なるほど。
そういえば、TapestryのWikiかなにかに3.1からDI機能が入るとか書いてあった気がする。
Springを勉強しないで良くなる代わりに、HiveMindを勉強する必要があるのかな。。
608デフォルトの名無しさん
垢版 |
05/01/30 17:37:44
>>155

http://www.saisse.jp/pukiwiki/pukiwiki.php?Tapestry%2FTips#disable-caching

でどうでしょう?
05/02/12 14:23:18
Tapestry使ったコンテストがあるんだね。
誰か参加してるヤシいる?

賞金100万円いいよな。

http://www.dena.ne.jp/other/index.html
05/02/12 23:06:52
> 609
URL見たけど、どのあたりがTapestryに関係しているの?
611デフォルトの名無しさん
垢版 |
05/02/16 21:59:17
Tapestry 3.0.2 Released
■ このスレッドは過去ログ倉庫に格納されています