Tapestryについて語ろうよ!

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

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

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

Tapestryに興味ある人レスよろしくね!
0471デフォルトの名無しさん
垢版 |
NGNG
age
0474デフォルトの名無しさん
垢版 |
NGNG
そもそも狼人間などこの世にいないからな。都市伝説だ。
 
 
 
 
つまりデスマも都市伝説ってわけだ。
0475デフォルトの名無しさん
垢版 |
NGNG
>>474
いや、狼に育てられた、狼人間はいた。
0479デフォルトの名無しさん
垢版 |
NGNG
age
0480デフォルトの名無しさん
垢版 |
NGNG
>>475
アフリカでオオカミに育てられ人間に拾われ人間の生活に戻そうとしたが
10歳で死んでしまった少女アヴェロン野生児か
0482デフォルトの名無しさん
垢版 |
NGNG
age
0484デフォルトの名無しさん
垢版 |
NGNG
関連プログラムのネタならあるぞ。

HiveMind 1.0-βリリースとか、
O-R Mappingフレームワークスレでの、祭りの後のCayenneの静けさとか…。
0490デフォルトの名無しさん
垢版 |
NGNG
WebとDBの連携やるのに、
TapestryとCayenneの相性がいいらしいって話しだろ。
ちょっと日本語資料少ないな。
0494デフォルトの名無しさん
垢版 |
NGNG
>>492
書き方が足りなかった(スマソ)

WebServiceから使われることを想定しているフレームワークで、
Strutsへの設定を章立てし説明しているプロダクトは多々あれど、
Tapestryへの設定を章立てし説明しているプロダクトはCayenneくらい?

ということ。
0495デフォルトの名無しさん
垢版 |
NGNG
>>494
技術的な話題でWebServiceっていったときにはStrutsとかTapestryは当てはまらないと思われ。
いわんとすることはわかるが。
でも、Cayenne使えネっていう結論になってそうだぞ。
0496デフォルトの名無しさん
垢版 |
NGNG
age
0497デフォルトの名無しさん
垢版 |
NGNG
age
0498デフォルトの名無しさん
垢版 |
NGNG
エイジ
0500デフォルトの名無しさん
垢版 |
NGNG
age
0501デフォルトの名無しさん
垢版 |
NGNG
@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


0502501
垢版 |
NGNG
>>501
すいません自己解決しました.
基本的にこんなこと気にしなくて良かったんだな.

しかしいつも選択されたかどうかを示すフラグが必要になる・・・?

0504デフォルトの名無しさん
垢版 |
NGNG
age
0505デフォルトの名無しさん
垢版 |
NGNG
sage
0506デフォルトの名無しさん
垢版 |
NGNG
なんか詳しい資料少ないよねぇ・・・・

一行ごとに色を切り替えて縞々模様に
なるテーブル作りたいんだけど
どうやって書けば良いんでしょ・・・・
0507デフォルトの名無しさん
垢版 |
NGNG
>>506
ttp://www.sandcastsoftware.com/articlesandtutorials/brownbag/index.html#tapestry
英語だけど、ここのPDF落としてみてごらん。
一行ごとに色換えしてるサンプルのチュートリアルを含むみたい。
もちろん、ソースもダウソできるぞ。
0508デフォルトの名無しさん
垢版 |
NGNG
age
0509デフォルトの名無しさん
垢版 |
NGNG
Tapestryのおもしろい話題ないかね〜?
0510506
垢版 |
NGNG
>>507
ありがとう
亀レスになってしまった

英語苦手ながら一通り呼んでみたのだけど,
縞々のリストは最初のサンプルに提示してる画面だけで,
その後チュートリアルとして実際作り出したら背景色なんて
気にしてないみたい…多分.
漏れの英語力が著しく欠如してるのかもしれないけども

とりあえずその問題は参照するたびにTrue/Falseが切り替わる
プロパティで何とかすることにしたよ…なんか納得いかないけど….


で,新しい疑問がでてきてしまったんですが
HTMLのプロパティに可変値を設定したいときはどうすれば良いのだろう

可変長リストの左側に柱をつけたいときとか
<td rowspan="xx">
とかやるよね.xxを件数に応じて帰る必要があるんだけども
どうやって指定すれば良いのか・・・.
OGNLかとおもったけど違うみたいだし
0511506
垢版 |
NGNG
>>510
ああ,Anyだったか・・・・?

すいません,上記のrowspanの話は自己解決しました.(良いやり方なのかどうか知らんが)

ちなみに *.pageに以下を定義(hogeCollectionは適当なコレクション.sizeは長さ)

<component id="verticalLine" type="Any">
<binding name="rowspan" expression="hogeCollection.size"/>
</component>

*.htmlのほうで
<td jwcid="verticalLine" >

としました.

お騒がせしました.
0512デフォルトの名無しさん
垢版 |
NGNG
さて、HiveMindがRCになったわけだが。
0517デフォルトの名無しさん
垢版 |
NGNG
age
0518デフォルトの名無しさん
垢版 |
NGNG
あげ
0519デフォルトの名無しさん
垢版 |
NGNG
age
0523デフォルトの名無しさん
垢版 |
NGNG
JavaScriptをTapastryScriptで記述するのって手間じゃないですか?
JavaScriptで画面遷移の制御している画面では書き換えが面倒な気がします。

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

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


どっちでもいいが、使いやすくしてくれ。
0526デフォルトの名無しさん
垢版 |
NGNG
FRAMESETの使い方教えてください。
0527デフォルトの名無しさん
垢版 |
NGNG
age
0528デフォルトの名無しさん
垢版 |
NGNG
TapestryアプリケーションでURLを一般的な***.html風にする一番きれいな方法は
どうすればいいでしょうか?
1.PageLinkを使わず、自作のFilterで***.htmlがきたら/app?service=page/***にフォワードする
  欠点:ステートフルやセッションを使うのが一苦労
2.AbstractEngine#extractServiceName,EngineServiceLink#constructURLなどを書き換える
3.BaseEngine,AbstractService,EngineServiceLinkを継承してextractServiceName,constructURLをオーバーライトする
4.他の方法あったら教えて
0530デフォルトの名無しさん
垢版 |
NGNG
>528
3.1で対応する、とMLにあった。
0535デフォルトの名無しさん
垢版 |
NGNG
age
0536デフォルトの名無しさん
垢版 |
NGNG
age
0539デフォルトの名無しさん
垢版 |
NGNG
Tapestry3.0.1が近いね
0541デフォルトの名無しさん
垢版 |
NGNG
>>540
Tapestry3.1はまだだろ!どこの情報だ???
0542デフォルトの名無しさん
垢版 |
NGNG
age
0543デフォルトの名無しさん
垢版 |
NGNG
age
0544デフォルトの名無しさん
垢版 |
NGNG
age
0545デフォルトの名無しさん
垢版 |
NGNG
age
0546デフォルトの名無しさん
垢版 |
NGNG
Tapestry3.0.1出たよ
0547デフォルトの名無しさん
垢版 |
NGNG
age
0548デフォルトの名無しさん
垢版 |
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 で使いたいのですが。
0549デフォルトの名無しさん
垢版 |
NGNG
>>548
呼出しが setFoo, hogeAction の順なら、foo の内容を hogeAction で
使えるような気がするんですが、"bar の内容を hogeAction で使いたい" の
書き損じでしょうか...?
0550548
垢版 |
NGNG
>>549
typo でした。
「bar の内容を、 hogeAction で使いたい」が、やりたい事です。

誰か教えてage!
0551デフォルトの名無しさん
垢版 |
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 にするとかの方が好みですが)
0552デフォルトの名無しさん
垢版 |
NGNG
タペストリーでhttpsで接続するにはどうしたらよいでしょうか?
例えばcycle.activate( pageA );としてpagaAを表示する際にhttpsで接続するにはです。

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

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

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

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

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


0555デフォルトの名無しさん
垢版 |
NGNG
学習中です。jwc を作ってみたりしています。
BaseComponent を extend したコンポーネントクラスで、
与えられた parameter を元に、かくかくしかじかの前処理を行ってから
コンポーネントの表示を行いたい場合、
renderComponent をオーバーライドして、かくかくしかじかを行ってから
super.renderComponent を呼べばOKでしょうか。
0560デフォルトの名無しさん
垢版 |
NGNG
タペ専門書ってないの?
「Jakartaナントカ」とか「オープンソースナントカ」みたいな本の1コーナーでしかないのかな。
0563デフォルトの名無しさん
垢版 |
NGNG
セッションタイムアウト時の
Your session has timed out.
Web applications store information about what you are doing on the server. ....
という画面を別の画面に差し替えたいのだが
どうすればよいのだろう。
0564デフォルトの名無しさん
垢版 |
NGNG
.page や .html を、.application と同じディレクトリにずらずら並べないで、
アプリケーションの機能ごとにディレクトリを作ってその下に置いた場合、

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

<a href="app?service=page/Hoge">
と出力するのは簡単ですよ
0568566
垢版 |
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>と出力させるようにしてるっす
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況