Tapestryについて語ろうよ!
■ このスレッドは過去ログ倉庫に格納されています
JakartaのTapestryフレームワーク使ってますか?
日本ではなかなか情報が手に入らず、本家のドキュメントも
古いバージョンのままなので、使いたいと思って挫折した人多くありませんか?
私はTapestry2.3あたりのころにTapestryの存在を知りました。
それまではStrutsでした。
デザイナーを内輪にかかえていない我が社では外注先から戻ってきた
HTMLからJSPへの変換および、再修正依頼が非常に困難でした。
○JSPへの変換ってつまらないよね!
○デザイナーがStrutsの拡張タグ理解できるわけないだろう!
○できたとしてどうやってデザインするの?
そんなあなたにはTapestryしかありません!
ぜひ日本でもこの2chを中心にTapestryの輪を広げて
Strutsにイカレテいる古臭いプログラマーたちを見返してやりましょうよ!
ちなみに私は携帯&PC向け有料サイトでTapestry使ってます。(^o^)v
登録ユーザ○十数万人、売上○千万円程度の規模です。
携帯は全機種対応確認済みです。
携帯のブラウザのバグ的なものに対応するために、
Tapestryのソースいくつか書き換えてるけどね(^_^;
Tapestryに興味ある人レスよろしくね! >>470
こいつは>>469の意味がわかってないってことだ。 そもそも狼人間などこの世にいないからな。都市伝説だ。
つまりデスマも都市伝説ってわけだ。 >>473
「人月の神話」っていう本の副題だよ。
まあ、もう結構昔の本だけど、機会があれば読んでみな。
おまいら現実を見ようぜw
まぁいくら良い?道具を使ったところで、万能じゃないってことだな。
>>475
アフリカでオオカミに育てられ人間に拾われ人間の生活に戻そうとしたが
10歳で死んでしまった少女アヴェロン野生児か 関連プログラムのネタならあるぞ。
HiveMind 1.0-βリリースとか、
O-R Mappingフレームワークスレでの、祭りの後のCayenneの静けさとか…。 こっちにもおいで。
Java⇔RDBのMapping-Frameworkを語るスレ Vol.2
ttp://pc5.2ch.net/test/read.cgi/tech/1086315004/
>>484
Cayenneって、Tapestry関連なの? WebとDBの連携やるのに、
TapestryとCayenneの相性がいいらしいって話しだろ。
ちょっと日本語資料少ないな。 >>489-490
Cayenne公式のUser's Guideに、
Tapestryへの設定の仕方の章がある。 >>491
それだったら、Strutsのもあるからなぁ。 >>488のスレに、Cayenneの日本語資料作ってくれた人が現れますたよ。 >>492
書き方が足りなかった(スマソ)
WebServiceから使われることを想定しているフレームワークで、
Strutsへの設定を章立てし説明しているプロダクトは多々あれど、
Tapestryへの設定を章立てし説明しているプロダクトはCayenneくらい?
ということ。 >>494
技術的な話題でWebServiceっていったときにはStrutsとかTapestryは当てはまらないと思われ。
いわんとすることはわかるが。
でも、Cayenne使えネっていう結論になってそうだぞ。 @Select とか @Optionで
@Foreach使って
<option value="1月">1月</option>
<option value="2月">2月</option>
<option value="3月">3月</option>
<option value="4月">4月</option>
<option value="5月">5月</option>
<option value="6月">6月</option>
っていうのはできないの????
valueの値が連番になってしまう
公式のリファレンス見てもわからんかった... orz
>>501
すいません自己解決しました.
基本的にこんなこと気にしなくて良かったんだな.
しかしいつも選択されたかどうかを示すフラグが必要になる・・・?
なんか詳しい資料少ないよねぇ・・・・
一行ごとに色を切り替えて縞々模様に
なるテーブル作りたいんだけど
どうやって書けば良いんでしょ・・・・
>>506
ttp://www.sandcastsoftware.com/articlesandtutorials/brownbag/index.html#tapestry
英語だけど、ここのPDF落としてみてごらん。
一行ごとに色換えしてるサンプルのチュートリアルを含むみたい。
もちろん、ソースもダウソできるぞ。
>>507
ありがとう
亀レスになってしまった
英語苦手ながら一通り呼んでみたのだけど,
縞々のリストは最初のサンプルに提示してる画面だけで,
その後チュートリアルとして実際作り出したら背景色なんて
気にしてないみたい…多分.
漏れの英語力が著しく欠如してるのかもしれないけども
とりあえずその問題は参照するたびにTrue/Falseが切り替わる
プロパティで何とかすることにしたよ…なんか納得いかないけど….
で,新しい疑問がでてきてしまったんですが
HTMLのプロパティに可変値を設定したいときはどうすれば良いのだろう
可変長リストの左側に柱をつけたいときとか
<td rowspan="xx">
とかやるよね.xxを件数に応じて帰る必要があるんだけども
どうやって指定すれば良いのか・・・.
OGNLかとおもったけど違うみたいだし >>510
ああ,Anyだったか・・・・?
すいません,上記のrowspanの話は自己解決しました.(良いやり方なのかどうか知らんが)
ちなみに *.pageに以下を定義(hogeCollectionは適当なコレクション.sizeは長さ)
<component id="verticalLine" type="Any">
<binding name="rowspan" expression="hogeCollection.size"/>
</component>
*.htmlのほうで
<td jwcid="verticalLine" >
としました.
お騒がせしました. >>515
そう。
このスレは、それについて語るスレ。
板違い。 Tabesptryって消えそうですね。少なくとも日本じゃ流行らなそう・・。 流行ってなくてもおれは使う!!
何故なら楽だし楽しいから。 JavaScriptをTapastryScriptで記述するのって手間じゃないですか?
JavaScriptで画面遷移の制御している画面では書き換えが面倒な気がします。
ちなみに、TapestryScriptを使用するとHTML画面でのJavaScriptチェックはできなくなりますよね? >>524
YSFとS2JSFが一緒になるらしい。
9/9の日記参照
http://d.hatena.ne.jp/higayasuo/
どっちでもいいが、使いやすくしてくれ。 TapestryアプリケーションでURLを一般的な***.html風にする一番きれいな方法は
どうすればいいでしょうか?
1.PageLinkを使わず、自作のFilterで***.htmlがきたら/app?service=page/***にフォワードする
欠点:ステートフルやセッションを使うのが一苦労
2.AbstractEngine#extractServiceName,EngineServiceLink#constructURLなどを書き換える
3.BaseEngine,AbstractService,EngineServiceLinkを継承してextractServiceName,constructURLをオーバーライトする
4.他の方法あったら教えて
>>529
Flex 面白そうだよね。JSP ライクなタグってのが気になるが...
トライアル版登録して試してみようかな。 Tapestry3.1 and HiveMind1.0キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!! >>540
Tapestry3.1はまだだろ!どこの情報だ??? 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 で使いたいのですが。 >>548
呼出しが setFoo, hogeAction の順なら、foo の内容を hogeAction で
使えるような気がするんですが、"bar の内容を hogeAction で使いたい" の
書き損じでしょうか...? >>549
typo でした。
「bar の内容を、 hogeAction で使いたい」が、やりたい事です。
誰か教えてage! >>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 にするとかの方が好みですが) タペストリーでhttpsで接続するにはどうしたらよいでしょうか?
例えばcycle.activate( pageA );としてpagaAを表示する際にhttpsで接続するにはです。
やっぱりweb.xmlに記述するんですかねー? その場合の記述方法は?
RedirectExceptionでhttpsなURLにリダイレクトするというのは駄目?
TiA本を読み終わっての、Tapestryのいい所といまいちな
感じの所をつらつらと。
いい所:
デザイン完全分離、コンポーネント、ドメインロジックとの
容易なグルーイング、アセット管理、イベントベース処理、OGNL
いまいち?:
直感的でないフォームのwinding/rewinding、認証サポート、
クライアントサイドスクリプトのサポート
どっちとも言えず:
バリデーション
かなりというか Struts みたいな原始的なのと比べるのが
馬鹿らしいほど高水準な割に、見通しも悪くなくて結構好みな感じ。
コンポーネントも結構簡単に作れるから、自前コンポーネント
ライブラリの整備も結構急ピッチにできそう。
学習中です。jwc を作ってみたりしています。
BaseComponent を extend したコンポーネントクラスで、
与えられた parameter を元に、かくかくしかじかの前処理を行ってから
コンポーネントの表示を行いたい場合、
renderComponent をオーバーライドして、かくかくしかじかを行ってから
super.renderComponent を呼べばOKでしょうか。 Tapestryって、なんでいいものなのに広まらなかったんだろうね。 日本語の資料ってないの?
JavaWorldの去年の特集くらい? タペ専門書ってないの?
「Jakartaナントカ」とか「オープンソースナントカ」みたいな本の1コーナーでしかないのかな。 Tapestry in Action の和訳版が出れば嬉しいんだけどねー。 inActionが訳されないようなモノは、専門書も出ないってことだな。 セッションタイムアウト時の
Your session has timed out.
Web applications store information about what you are doing on the server. ....
という画面を別の画面に差し替えたいのだが
どうすればよいのだろう。
.page や .html を、.application と同じディレクトリにずらずら並べないで、
アプリケーションの機能ごとにディレクトリを作ってその下に置いた場合、
.application で
<page name="Pagename" specification-path="/path/to/Pagefile.page"/>
を沢山書かなくてはダメですか?
<a jwcid="@PageLink" page="/path/to/Pagefile.page">aaa</a>
って書きたい…。
>>564
そのとおりなので、Tapestry は欠陥品。
ちなみに
requestCycle.activate("path/to/Pagefile");
となら書ける。謎。 ハローTapestry Fun!
TapestryのPageLinkクラスを修正して、
<a href="Hoge.html" jwcid="@PageLink">gotohoge</a>
を
<a href="app?service=page/Hoge">
と出力するのは簡単ですよ >>566
じゃあそういうクラスと jwc 書いて公開して。
ついでに >>564 を解決する jwc も公開して。 >>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>と出力させるようにしてるっす
■ このスレッドは過去ログ倉庫に格納されています