Tapestryについて語ろ ..
[2ch|▼Menu]
20:Ace
03/11/02 23:22
Tapestryリンク

●●●メイン●●●
○Tapestry本家
URLリンク(jakarta.apache.org)
○Spindle(Tapestry Eclipse Plugin)
URLリンク(spindle.sourceforge.net)
○Tacos(Tapestry Component)
URLリンク(tacos.sourceforge.net)
●●●書籍●●●
○JAVA World 2003年12月号
URLリンク(www.idg.co.jp)
○WEB+DB PRESS Vol.16
URLリンク(www.gihyo.co.jp)
○Tapestry in Action
URLリンク(www.manning.com)
●●●作者解説サイト●●●
○Beginning Tapestry
URLリンク(jakarta.apache.org)
○Tapestry-WebTech
URLリンク(tapestry.sourceforge.net)
○Designing Tapestry Mega-Components
URLリンク(www.onjava.com)
●●●個人解説サイト●●●
○うえやんのページ
URLリンク(homepage3.nifty.com)
○Tapestry Tutorial
URLリンク(tapestry-tutorial.cloudnine.net.nz)


21:Ace
03/11/03 18:56
●●●Tapestry入門&実践講座@2ch●●●
JAVA Worldもいいけれど、ネットの技術はネットで学べ(某氏の格言)
つーことでTapestry入門&実践講座(完全無料)をここ2chで行いたいと思います。
質問は常時OK!詳しい人はレスも期待します。
私にも記事か本書かせてよm(_ _)m>JAVA World、他出版社様

●修了目標時期:JAVA World第3回が出るより前に終わらせる(^_^;
●対象者:Strutsを使ってWebアプリを作ることに何かしらの不満がある人
●目次:
1.Tapestryとは(Strutsとの比較)
2.フォルダ構成(Eclipse&Spindle)
3.Hello World
4.現在時刻
5.文字列出力コンポーネントの使い方
6.ページ仕様ファイルの記述
7.アプリケーション仕様ファイルの記述
8.ページクラスの作成方法
9.コンポーネントの使い方全般
10.リンクコンポーネントの使い方
11.フォームコンポーネントの使い方
12.IExternalPageインターフェース
13.PageRenderListenerインターフェース
14.JDBC(JNDI)を使ってDBアクセス
15.StrutsアプリからTapestryへの移行
16.独自コンポーネントの作成


22:Ace
03/11/03 18:57
以下を知りたい人は私が本を出版するのに賛同して下さい。(^_^;
有料情報
○Tapestryの欠点・バグ・修正方法(割とお勧め! 3万円相当)
○Tapestryで携帯Webサイトを作る(かなりお勧め! 10万円相当)
○Tapestryで携帯&PC共存サイトを作る(割とお勧め! 3万円相当)
○Tapestry+EclipseUMLを用いた設計・開発(かなりお勧め! 10万円相当)
○TapestryにJDBC機能を持たせる拡張方法(割とお勧め! 3万円相当)
○デザイナーとの連携


23:デフォルトの名無しさん
03/11/03 19:23
かなり期待してます。次はいつかな?

24:デフォルトの名無しさん
03/11/03 20:48
Tapestryマンセー

25:デフォルトの名無しさん
03/11/03 22:02
まぁ、WebObjectsのWOFのパクリなわけだが、
WOは嫌いではないので期待してはいる。
いいんじゃないかい、これ。

26:デフォルトの名無しさん
03/11/04 00:09
>>22
出版するには期待しないけど、
ちゅうーかやるなよ。
Tapestryについてかたるのは、OK

27:デフォルトの名無しさん
03/11/04 09:22
早く本出せるようがんばれよ!期待してるぜ

28:デフォルトの名無しさん
03/11/04 09:26
ところでTapestryはサーバーサイドプログラミングの
「WEBプログラミング」板の方がいいんじゃないの?
URLリンク(pc2.2ch.net)
板違いモゲホゲ

29:デフォルトの名無しさん
03/11/04 18:36
で、Tapestryは本当にWeb限定なのか?

30:デフォルトの名無しさん
03/11/04 19:41
もう、いいだろ?
開発スピード落としてまで使うことはない。

素直にStrutsか.NET使った方が開発スピード速いよ。


31:デフォルトの名無しさん
03/11/05 01:00
>>30
開発スピードは変わらないと思われ。
変わると思うなら根拠を述べよ。

Tapestryのいいところは、デザインとロジックの
分離がきれいにできているところじゃないかなぁ。
それぐらいだけどね。

32:デフォルトの名無しさん
03/11/05 11:34
>>31
Tapestry覚えるのに時間かかりますよね?
今、習得している技術でTapestryと同じ事できないか?
おれはASP.NET(C#)、Struts、Tapestry、Struts+Tapestryで色々試したし
雑誌記事もよんだ。
ココであえてTapestryを選択する意味は何だ?
『それぐらいだけどね』のために、新たに学習するのは
コストかかるよ。
それに>>18が言っているような開発現場のほうがおかしい
なんでデザイナーとプログラマがああいう関係になっているのかわからん
>(そのとき、デザイナーに直してもらうファイルは元のHTML?それとも拡張タグを埋め込んだJSP?
>当然元のHTMLを修正してもらって、その後プログラマーが前と同じようにJSPに変換するよね )

雑誌の記事の受け売りなのかは知らんがそんな現場あるのか?
もっと頭使って仕事分けてほしい。


33:デフォルトの名無しさん
03/11/05 11:46
>>32
ごめん、漏れその辺何も触ったことがないんだが、
ズブの初心者だと、Tapestryとそれ以外だとどっちがいい?
何となくTapestryは直感的にわかりやすそうな気がしたので
気になっていたんだけど、>>32を読んだら他の奴の方が
いいのかなという気がしてきた。

34:デフォルトの名無しさん
03/11/05 12:03
>>33
最初からTapestryやるのなら何も文句いわないよ
ましてや、趣味でプログラミングなら何も文句はない。
俺はStrutsやNETの方が全体的に浸透しているという前提で話しているだけだから。
しかも俺が言ってるのはフレームワーク自体の優劣の事は言っていない。
ただ、Java系ならStrutsは知っておいた方がいいかもしれない
Tapestryってあまりサーブレット的なプログラミングではないので
サーブレットの仕組みを知るためにStrutsからやった方がいいとは思うけど。




35:デフォルトの名無しさん
03/11/05 12:53
>>18
それみるとさ、
strutsでVelocityを使えばいいのでは?
と思うんですがどうですか?


36:デフォルトの名無しさん
03/11/05 23:12
>>32
なんだ。
技術を習得する噺家。
あんなもん、三日あれば理解できるだろ。
基本的なこと以外は、コンポーネントの設定の話だから。

デザイナとプログラマの話し出てたけど、
デザイナがHTML以外を使う話は聞いた(経験した)ことない。
プログラマが、JSP直でいじっている以外は、
デザイナが作ったHTMLをプログラマが毎回
JSPに変換しているはずだよ。

ドリがJSPを理解できるなら別だけどな。
というわけで、JSFも糞だな。

ドリってなによって聞くなよ。

37:デフォルトの名無しさん
03/11/06 00:27
36に賛成!

38:デフォルトの名無しさん
03/11/06 00:37
ドリってなによ?

39:デフォルトの名無しさん
03/11/06 00:43
しかし、どうもプロジェクト乱立しすぎじゃないかと思う。
一つ一つは覚えれば、複雑でわからないといったことはないが、
Jakarta全体で将来、どうしたいのかが判りにくい。
特にVelocityとTapestry、微妙にかぶっているとこもありそうだし、
Jakartaは調整が必要な気がする。

個人的には勝ち残りフレームワークしか使いたくないし。


40:デフォルトの名無しさん
03/11/06 00:55
確かにCommonsなどを見るとXML関係が妙に乱立しているね。

けどオープンソースにそういう調整は要らないよ。
要るとしたら見た目だけの調整や、
どれがどのような用途に向いているのか、
どれがどれとどう違うのかをはっきりと明示するなり
用途に合わせたお勧めを紹介してもらうが吉。

商用アプリじゃないんだしオープンソースに勝ち残りなんて関係ないさ。
使われない技術が消えると言うこともまずないさ。
消えたとしても名前が変わったとか他の技術と融合する程度さ。
それに不満があるなら自分で改良すればいいさ。



41:デフォルトの名無しさん
03/11/06 01:00
とりあえず、英語のリソースを翻訳することから始めよう。

42:デフォルトの名無しさん
03/11/06 01:11
…と思って見に行ったら、いきなりTutoriaとDeveloper's Guideがout of dateだったよ。

43:デフォルトの名無しさん
03/11/06 01:11
>>35
●●●Velocityの例
<table>
#foreach( $mud in $mudsOnSpecial )
 <tr>
  <td>$mud</td>
 </tr>
#end
</table>
●●●Strutsの例
<table>
<tr jwcid="@Foreach" source="ognl:mudsOnSpecial" value="ognl:mud" element="tr">
<td><span jwcid="@Insert" value="ognl:mud">ほげほげ(仮)</span></td>
</tr>
</table>
VelocityとTapestryの違いわかりますか?
テンプレートファイルを直接ブラウザで見ると、Velocityではtableタグとtrタグの間に文字があるから
ロジックが目に見えるでしょう。
Tapestryの場合、trタグやspanタグの属性にロジックを埋め込めるから、
テンプレートの見た目と実行時の見た目がほぼまったく同じなのです。
画像貼り付けられないのが残念ですが、信じられないならお試しあれ。

44:デフォルトの名無しさん
03/11/06 01:16
Exciteで日本語に翻訳したやつなら作ったよ
直訳だとほとんど意味不明
StatelessとかStatefulが「州」になるのが特にイケテなかった
欲しかったらbase64で貼り付けるけど?

45:41
03/11/06 01:21
>>44
俺宛のコメント?
俺は要らないよ。英語読めるから…

46:デフォルトの名無しさん
03/11/06 01:38
>>20
> ●●●メイン●●●
> ○Tapestry本家
> URLリンク(jakarta.apache.org)
をみるとJavaScriptを使ってメリットを力説しているみたいでワラタ

URLリンク(jakarta.apache.org)
>「タペストリーは、JSF、支柱(struts)およびその他同種のもののようなフレームワーク
>からの鼻水を殺そうとして襲います」
>私が働く会社はカナダ研究協議会と研究計画を行いました。
>>また、私たちは、私たちが行っていた技術的な危険計画のための
>ウェブ・サービス、J2EEおよびデータ・ベース・システムを調査して
>数か月を過ごしました。それから、私たちは3つのものを学習しました:
>ウェブ・サービスは未熟でした。

この引用記事を見るとかなり宣伝しているみたいだね。
他のプロジェクトに比べると異様なほど宣伝が多いのはなぜだ?
Tapestryで商売でもやってるん?

HTMLやXMLに限定することからJava以外にもどんな言語にも使えるんだね。

47:デフォルトの名無しさん
03/11/06 02:09
宣伝?

48:デフォルトの名無しさん
03/11/06 02:19
PHPでも使えるとはいえServletコンテナ使用することが大前提なんだね。
Velocityとはそのあたりが異なり微妙だ。
なんでServletが必要なんだろう。
ドキュメントをまだよくよんでない、実際に使っていないのでまだよくわかんない。
簡潔な説明できたらよろ

49:デフォルトの名無しさん
03/11/06 11:25
>>48
TapestryはURL自体をフレームワークが管理する。
設計者・開発者は、<a>リンクが「どのページ」へ「どのパラメータ」を渡すかだけを指定し、
実行時にどんなURLやクエリパラメータになるかということは、ユーザーも開発者も詳しく知る必要がない。

具体的に言うと
●●●JSPの例
○テンプレート
<a href='<%=response.encodeURL("/login.jsp?username="+username+"&password="+password")%>'>login</a>
○実行時
<a href='/login.jsp?username=hogename&password=hogepass'>login</a>

●●●Tapestryの例
○テンプレート
<a href="Login.html" jwcid="@ExternalLink" page="Login" parameters="ognl:{username,password}">login</a>
○実行時
<a href="/app?service=external/Login&sp=hogename&sp=hogepass">login</a>

という風にテンプレートと実行時のURLの見た目が似ているのがJSP、
実行時のURLをまったく意識しなくていいのがTapestry。
この特徴はたとえばクエリーパラメータ名を1文字間違えて
<a href='/login.jsp?usermame=hogename&password=hogepass'>login</a>
としてしまうようなよくあるケアレスミスの発生を防ぎ、
URLを文字列の連結として扱うという本質的でない作業から開発者を開放する。

もちろんTapestry外部のサーブレット等を呼び出すために、
JSPと同様な方式でクエリーパラメータを1つずつ指定する方法もできないわけではない。


50:デフォルトの名無しさん
03/11/06 12:46
それではカスタムタグライブラリの立場が・・・・・


51:デフォルトの名無しさん
03/11/06 16:07
>デザイナとプログラマの話し出てたけど、
>デザイナがHTML以外を使う話は聞いた(経験した)ことない。
まだあるのか?そんな職場・・・
フレームワークどうこう言うより
開発現場のやり方がおかしい
そういう分野の最新技術は追い求めないのですか?

52:デフォルトの名無しさん
03/11/06 16:12
>>36
お前開発者なのか?
>三日あれば理解できるだろ。
3日ってなによ?3日も時間費やしてなんとも思わないの?

53:デフォルトの名無しさん
03/11/06 16:20
>>39
プロジェクト乱立は別にいいんだよ
ただよ、それを記事で取り上げる雑誌が悪いと思う
他にネタがないのだろうな多分。
でもって、それを読んだ読者が影響されてしまう。
最初の頃は良かったが、どの雑誌もJakarta取り上げるようになって
大して役に立たないものまで紹介する始末。



54:デフォルトの名無しさん
03/11/06 16:45
役に立つかたたないかは人による

55:デフォルトの名無しさん
03/11/06 16:50
>役に立つかたたないかは人による
その程度のもの偉そうに取り上げて欲しくないね

56:デフォルトの名無しさん
03/11/06 17:24
たとえばどんな?

57:デフォルトの名無しさん
03/11/06 17:37

他にTapestryのお勧め意見ください
>>31
>「Tapestryのいいところは、デザインとロジックの 分離がきれいにできているところじゃないかなぁ。 それぐらいだけどね。」

↑みたいにたいして説明できていない昨日今日使ってマンセーってのは参考にならん

58:デフォルトの名無しさん
03/11/07 00:50
>>57
へえー。
昨日、今日使ってどうなんて関係無いだろ。
別にTapestryまんせーでもないよ。
これまで、JSPとHTMLの変換で大変だったから、
こういうアプローチだとうまくいくのかと思っただけ。

>>51
現場でさ、JSP書くデザイナなんかいないって。
開発者が書いているのは別だよ。
イントラなら十分にありえる。

最新技術を使ってたら なんて
どういう技術よ。

59:デフォルトの名無しさん
03/11/07 01:58
>>57
Tapestryはテンプレートの中にデザイン用のダミーデータを入れられる。
特にTableタグで効果を発揮するが、
<table border>
<tr jwcid="$remove$">
<td>山田</td><td>太郎</td><td>yamada@tarou.net</td>
</tr>
<tr jwcid="@Foreach" source="ognl:userdata" value="ognl:user" element="tr">
<td><span jwcid="@Insert" value="ognl:user.lastname">名字(仮)</span></td>
<td><span jwcid="@Insert" value="ognl:user.firstname">名前(仮)</span></td>
<td><span jwcid="@Insert" value="ognl:user.mail">メール(仮)</span></td>
</tr>
</table>

実行時は$remove$で囲まれた
<tr jwcid="$remove$">
<td>山田</td><td>太郎</td><td>yamada@tarou.net</td>
</tr>
は出力されない。

また@Insertで囲まれたダミーデータ(名字、名前、メール)も出力されず、
ロジックのJAVAクラスであらかじめ用意された
user.lastname、user.firstname、user.mailの実データで上書きされる。
spanタグも消去される。
完全にデザイナーがプレビューに使用するためだけの機能が標準でついているところが違う。

もちろんJSPでも<%if(0){%>ダミーデータ<%}%>と記述すればダミーデータを入れられるのだが、
そんなことする人はいないという現実を見ましょう。


60:デフォルトの名無しさん
03/11/07 02:20
これまたエスケープシーケンスの取り扱いが
面倒なことになりそうや
$や@を直に入力して使えんじゃないか
わざわざ&を&とか>を>とか<を<とかに置き換えるみたいに
$や@もエンティティ参照で置き換えねばならんかい?


61:デフォルトの名無しさん
03/11/07 02:21
2chブラウザがかってに置き換えた?
&を &amp; 
>を &lt;
<を &gt;
とかにおきかえるってことで



62:デフォルトの名無しさん
03/11/07 02:30
>>60
その必要はなし!
$と@を使う予約ワードはjwcid属性の値のみだから、
jwcid="$remove$"とかjwcid="@ExternalLink"
という風に数もたかだか知れている。
他の場所に$とか@があったらそのまま文字として出力されるよ

ちなみにロジックで生成した文字列の中に&、>、<、が入っていて
それを@Insertで出力する場合は自動的にHTMLエンコードして
&amp;&lt;&gt;として出力されるのは
<bean:write>と同じです。

63:デフォルトの名無しさん
03/11/07 02:42
しかしどこかでエスケープを気にしなければならない部分があると思うのだが
どこなんだろう?

64:デフォルトの名無しさん
03/11/07 09:52
JSP vs. Velocity
URLリンク(www.jajakarta.org)
XMLC vs. Velocity
URLリンク(www.jajakarta.org)

こういう比較のTapestry版があったらよろ

65:デフォルトの名無しさん
03/11/07 14:08
age

66:デフォルトの名無しさん
03/11/07 14:11
>>58
>現場でさ、JSP書くデザイナなんかいないって。
誰もこんなことやれって言ってない。
頭使って仕事分けろ。って言ったんだ。
その答えが「デザイナがJSP書く」なら何も言わないけどよ。
おまえら、デザイナと完全に分業してるの?
話しもしないの?話するのウザイとか思っている職場ですか?


67:デフォルトの名無しさん
03/11/07 20:07
>>59
これはメリットだと思うのだけど、Struts Tilesのようにページをパーツごとに
分割している場合、ブラウザではちゃんと表示されないよね。
結局サーバを介して確認しなくちゃいけない。

68:デフォルトの名無しさん
03/11/07 20:36
age

69:デフォルトの名無しさん
03/11/07 21:29
>>67
それはむしろ当たり前なんだけど、それでもダミーデータでそれらしく
デザインするとか、もしくはダミーヘッダ・フッタと言うべき機能がある
<html>
<script>
function hoge(){}
</script>
<body>
not for content of Tile but only for Design
<span jwcid="$content$">
content of Tile
content of Tile
content of Tile
</span>
not for content of Tile but only for Design
</body>
</html>
上の例は実行時には$content$で囲まれた
content of Tile
content of Tile
content of Tile
しか出力されません。デザイン時には当然すべてのデータでデザインできます。

70:デフォルトの名無しさん
03/11/07 21:31
>>66
うちの会社はデザイナーいないよ。
外注先デザイン会社の営業の人とは話するけど、
デザイナーとは直接コンタクト取れないね。

71:Ace
03/11/08 01:30
Tapestry入門実践講座

1.はじめに
 サーバーサイドJavaにおける、サーブレット+JSPのコーディング自由度の高さに起因する数々の問題点から、オープンソースフレームワークを用いた開発手法への期待が高まっている。
その中で、現在日本で最も使用されていると思われるStrutsフレームワークを用いて、デザイン(ビュー)とロジックを分離することの利点に対しての理解も今や周知の状況と言えよう。
しかしながら、実際の開発現場、特にHTMLデザイナーとWEBプログラマーが完全に分業しているシステム会社でのWebアプリケーション開発、保守手順から考えると、
StrutsはJSPの根本的な欠点を克服できていない。
つまり、HTMLデザイナーが使用するメジャーなWYSIWYGのHTML編集ソフト(HomePageBuilder等)はスクリプトレット、拡張タグをほとんど解釈できず、
WEBプログラマーの地道な作業により、1つずつHTMLタグから拡張タグへと書き換えていることだろう(なんと単調でつまらない作業なことか!)
これは今後主流になる可能性が高いJSFもほぼ同じ欠点を持つ可能性が高い。(開発者の声を聞け!)
 この講座では、Strutsを用いたMVCスタイルの開発への期待と絶望を体験したWEBプログラマーに対して、海外で人気が高く、Struts対抗馬と言われつつあるTapestryフレームワークを紹介し、
このフレームワークを用いることによって、よりビジュアルに、デザインの自由度と再利用性、HTMLデザイナーとの完全分業スタイルへの手助けとなることを期待する。


72:デフォルトの名無しさん
03/11/08 02:16
Tapestryのソースを見ると、
CVSでヴァージョン管理するときに
$$記号でソースコード内にヴァージョン番号などをつけるのが難しくなると
思うのだが、
そういう場合はどうすれば言いのだろうか?
Tapestryで本番JSPに変換するときだけCVSの$Id$などをはずすように
チェックアウトせなあかん?



73:デフォルトの名無しさん
03/11/08 02:31
>>72
TapestryはJSPではないのでそもそも「変換」という作業は必要ないよ
実行時に見せたくないなら
<span jwcid="$remove$">$Revision$ $Date$</span>

<span jwcid="$remove$">$Id$</span>
とでも頭に入れるといいよ

74:デフォルトの名無しさん
03/11/08 03:54
しかあし、たとえばこんなことをやりたいときは?
ボタンタグにヴァージョン番号をつけるんだ。

<input jwcid="$Revision 1.2$">$Revision$ $Date$</span>

これも$をエンティティ参照で$を消す?

75:デフォルトの名無しさん
03/11/08 12:40
>>74
$Revision 1.2$というコンポーネントはないから、
この書き方自体意味が無く実行時エラーが出るよ
ボタンのテキストにRevision値を書きたいなら
<input type="button" value="$Revision 1.2$">

<button>$Revision 1.2$</button>
でいいんじゃない?
jwcidは存在するコンポーネント名の指定と$remove$、$content$にしか使わないよ

76:デフォルトの名無しさん
03/11/08 19:09
age

77:デフォルトの名無しさん
03/11/09 10:58
13 名前:デフォルトの名無しさん 投稿日:03/11/02 18:25
おまえらさ、どうでもいいけど雑誌とかそういうものに流されすぎるのはよくないぞ

53 名前:デフォルトの名無しさん 投稿日:03/11/06 16:20
他にネタがないのだろうな多分。

78:デフォルトの名無しさん
03/11/09 18:27
>>77
部分抜き出しで多数派工作なんて君はマスコミ?w

79:デフォルトの名無しさん
03/11/10 01:54
>>71
次はいつかな?

80:デフォルトの名無しさん
03/11/10 02:26
>>71
俺も早く見たい。入門講座

81:デフォルトの名無しさん
03/11/10 08:16
Tapestryはほかにもどんな用途に使えるんだろう。
すべてのVelocityの機能をTapestryだけで実現することも可能なんだろうか?

Velocityを使った、EclipseのSimteekプラグインのように
プログラミング時のソースコードテンプレートに使える用途はあるのか?

82:デフォルトの名無しさん
03/11/10 23:27
>>71
俺も期待してるよ!

83:デフォルトの名無しさん
03/11/11 01:58
>>81
simteecプラグインの間違いだった
URLリンク(simteec.aluepke.de)

84:デフォルトの名無しさん
03/11/11 20:30
>>71
今晩あたりかな?w

85:デフォルトの名無しさん
03/11/11 23:01
>>81
TapestryとVelocityはまったく別のものだよ。

Velocityはテンプレートエンジン
TapestryはWebアプリのフレームワーク

86:デフォルトの名無しさん
03/11/12 00:47
やはりWeb用にしか使えないのか?

いやまてよHTML上にかくということは、

XMLでも使えるということか?

ならば、かなり凄いことができる!?

87:デフォルトの名無しさん
03/11/12 17:37
>>86
XMLでも
Anyコンポーネント
Foreachコンポーネント
Conditionalコンポーネント
Choose When Otherwiseコンポーネント
を使えば
XSLTと同じようなことができるね


88:デフォルトの名無しさん
03/11/13 02:03
もまいら、もちつけ

まあ、ここで騒げば
簡単Struts
簡単Velocity
につづけて
簡単Tapestryが発刊されるだろう
それまで待っても遅くないよん

89:デフォルトの名無しさん
03/11/14 02:27
>>88
簡単Velocityはクソだったらしいな・・・。

まあVelocityの翻訳がクソだったのが問題なのだが。

90:デフォルトの名無しさん
03/11/14 12:39
>>88
>>89
簡単Velocity
へのリンク希望!

91:デフォルトの名無しさん
03/11/14 21:27
>>90
URLリンク(www.amazon.co.jp)

92:デフォルトの名無しさん
03/11/15 01:39
>>89
いやだから、『簡単』Velocityなのです

93:デフォルトの名無しさん
03/11/15 19:49
TapestryとVelocityを比較するとTapestryの方がよく見えてきたぞ

94:デフォルトの名無しさん
03/11/15 21:20
>>93
例えばどういう点?

95:デフォルトの名無しさん
03/11/15 21:34
>>94
名前

96:デフォルトの名無しさん
03/11/15 21:36
ベム、ベラ、ベロシチィ! 
妖怪人間! ジャーン♪

97:デフォルトの名無しさん
03/11/16 22:13
>>96
今どきそんなの誰も知らないよ

98:デフォルトの名無しさん
03/11/17 20:18
今後比較予定だってー
www.spacewalker.tv/tapestry/comparison.html


99:デフォルトの名無しさん
03/11/17 22:02
>>1
先こされるぞ!早く次を書けよw

100:デフォルトの名無しさん
03/11/18 09:15
キリ番ゲット!

101:デフォルトの名無しさん
03/11/18 12:08
Tapestryとファンをダイレクトに結ぶ会員制オンラインファンクラブ「Tapestry club」。
ここでは、川畑・堂珍が積極的に参加して、いろんな企画をスタートさせていきます。

102:デフォルトの名無しさん
03/11/18 17:35
JAVA WORLDのサンプルのZIPは解凍しようとするとディレクトリ名が変だ?

103:デフォルトの名無しさん
03/11/18 17:41
>>102
ああ、やっぱり?
おれもディレクトリ名が
「ケミストリー」になる

104:デフォルトの名無しさん
03/11/18 18:14
appディレクトリの前にゴミディレクトリがあるみたいだし。
解凍してしまったこの変なディレクトリ消すのめんどくさ。

105:102
03/11/18 20:28
サンプル動いた。(^^)

106:Ace
03/11/19 16:22
2.JSPの欠点
JSPにはさまざまな長所、短所が指摘されているが、Tapestryと比較することに焦点を絞った場合、以下の点が欠点として強調される。逆にこれらの事項の裏返しがTapestryにおいて長所と言える。
●JSPファイルにはさまざまな言語(HTML,JavaScript,スクリプトレット,ディレクティブ,拡張タグ)が同時に含まれ、デザイナーはHTML,Javascript以外、特に頻出するスクリプトレット、拡張タグを理解できない
●JSPのスクリプトレットの書き方に標準がなく、プログラマーの能力差、経験差が大きく現れる
●HTMLタグから拡張タグへの変更が機械的で単調な繰り返しが多い
●JAVAはオブジェクト指向だが、JSPにはオブジェクト指向を感じない、デザインの再利用性が低い

107:デフォルトの名無しさん
03/11/20 17:31
>>106
次は?もっと早いペースで頼むよ

108:デフォルトの名無しさん
03/11/20 18:31
WEBDB vol16見ながらやってるんだけど、
<input jwcid="@TextField" value="ognl:echo"/>
とか書いたら、
<input type="text" name="$TextField" value=""/>
に変換された。
これってjavascript使いたいときどうすんのさ。
name属性の値はテンプレの段階じゃわからん。
>>1は責任もって教えること。

109:デフォルトの名無しさん
03/11/20 19:09
>>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:デフォルトの名無しさん
03/11/20 23:49
>>108
早く返事しろよ
  ∧_∧
( ´∀`)つゴルァ

111:108
03/11/21 09:38
>>109
昨日初めてさわったんよ。もっと教えて。
"hoge"を使うようなjavascriptだと少なくとも
テンプレHTMLの段階ではエラーになるから都合悪いって話。

112:デフォルトの名無しさん
03/11/21 09:52
>>109
早く返事しろよ
    ∧_∧
( ´∀`)つゴルァ

113:デフォルトの名無しさん
03/11/21 12:31
おい、マキシシングル出たぞ
早く買えよ

114:デフォルトの名無しさん
03/11/21 13:20
>>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:デフォルトの名無しさん
03/11/21 13:21
>>111
早く返事しろよ
 ∧_∧
( ´∀`)つゴルァ


116:デフォルトの名無しさん
03/11/21 13:24
>>115
もっとカツラがズレてないとダメだぞ

    ∧_∧
( ´∀`)つゴルァ

117:デフォルトの名無しさん
03/11/21 13:25
みんな知ってるかい?Don't you know?
URLリンク(www.dorffweb.com)
に新しいTapestryチュートリアルが出たらしい
>>44 はこれを日本語化すること

118:デフォルトの名無しさん
03/11/21 14:24
 <input type="text" name="hoge" name="hoge"/>
なにこれ。ださっ
テンプレはPerlのHTML::Templateみたいなのがいいな。
ベロcityはイマイチだった。

>>1 は解説サイト立ち上げろ
             ∧_∧
( ´∀`)つゴルァ

119:デフォルトの名無しさん
03/11/21 17:24
>>117
あ、こりゃ嬉しいな。PDF読んでみよう。THX!

120:デフォルトの名無しさん
03/11/22 01:31
1.ボタンが押された際にクライアントサイドでの
 入力チェックをしたいのだが、実現可能?
2.同一のフォーム内に複数のボタンがあっても大丈夫だよね・・・?

121:デフォルトの名無しさん
03/11/22 14:57
>>119
どういたしまして You are welcome!

122:デフォルトの名無しさん
03/11/22 15:23
>>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:デフォルトの名無しさん
03/11/22 17:35
>>120
早く返事しろよ
      ∧_∧
( ´∀`)つゴルァ

124:デフォルトの名無しさん
03/11/22 23:21
>>123
もっとカツラがズレてるぞ

 ∧_∧
( ´∀`)つゴルァ

125:デフォルトの名無しさん
03/11/23 13:13
携帯用のページみたいに
同じurlでキャリアによってテンプレートを変えるってこと
Tapestryで簡単にできますか?

126:デフォルトの名無しさん
03/11/23 19:35
>>125
簡単で、やり方は3通りかそれ以上あるけど、同じurlにする理由ってあるの?


127:デフォルトの名無しさん
03/11/23 19:37
>>126
↓「ズラズレモナー」わすれてるぞ!
      ∧_∧
( ´∀`)つゴルァ

128:デフォルトの名無しさん
03/11/23 23:10
>>126
深い意味はないです
毎回UserAgentを見て表示先を変えるのって
どうやるのが一番スマートかと思って

129:デフォルトの名無しさん
03/11/24 12:47
>>126
やり方教えて!!

130:デフォルトの名無しさん
03/11/24 23:16
        / ̄ ̄ ̄ ̄\
  ∧_∧  | でたぁ! |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 



131:デフォルトの名無しさん
03/11/25 23:56
        / ̄ ̄ ̄ ̄\
  ∧_∧  | でたぁ!  |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 


132:デフォルトの名無しさん
03/11/26 00:14
>>128
こんな感じで見ます

UserAgent   ←・・・・・・(・∀・ )

133:デフォルトの名無しさん
03/11/26 21:31
>>130>>131

どんな時もズラせろよ↓

        / ̄ ̄ ̄ ̄\
∧_∧  | でたぁ!   |
 (;∀;∩)< 教えて性人! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 


134:デフォルトの名無しさん
03/11/27 21:20
JavaWorld見たかい?

135:デフォルトの名無しさん
03/11/28 23:42
設定ファイルとサーブレットマッピング、パッケージ配置の
お作法がわからん。

■パッケージpageの下にページ設定のXMLやBasePage
 を継承したクラスをおいた場合は、web.xmlにpageという
 仮想パス名でApplicationServletを割り当てないと駄目なのですが?
■hoge.applicationファイルってWEBアプリに
 ひとつだけ配置することになるのですか?
■pagegroup1というパッケージの下に配置したページから
 pagegroup1というパッケージの下に配置したページへ
 画面遷移することは可能ですか?

136:デフォルトの名無しさん
03/11/29 02:59
>>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"
 "URLリンク(java.sun.com)">
<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:デフォルトの名無しさん
03/11/29 03:02
>>135
hoge.applicationとサーブレット名のhogeを同じにしておけばよいよ
ページクラスとページテンプレートの関係はページ使用ファイルの中に書くから
同じ名前である必要はない。もちろんパッケージ名はまったく関係がない

ページテンプレートはWEB-INFの下にフラットに置く方が、
デザイナーさんにファイルを送るときにまとまってて都合がよいよ

138:135
03/11/29 21:44
>>137
なるほど。サンクス。
ボチボチサンプルアプリでも作ってみるかね。。

139:デフォルトの名無しさん
03/11/30 02:05
>>98
URLリンク(www.spacewalker.tv)
消えてるんだけど(>_<)
どういうこと?責任取れ!

140:デフォルトの名無しさん
03/11/30 09:34
俺達のTapestryは幻だったのか?

141:デフォルトの名無しさん
03/11/30 18:42
画面A - <submit> - submitActionメソッド - <処理OK> - <OK画面>
                          |-<処理NG> - <NG画面>

こんな処理を行ないたいのですが、参考になるサンプルなどを
教えてもらえませんか?
submitActionメソッドの中で遷移先のHTMLファイルを切り替えたいのです。

142:141
03/11/30 18:59
自己レスすまそ。
requestCycle.activate("OkPage");
requestCycle.activate("NgPage");
で出来るな。
これからはヅラ直してから質問しまつ。

143:デフォルトの名無しさん
03/11/30 19:27
>>141
目を覚ませ
終わったんだよ・・・

144:141
03/11/30 19:36
>>143
そっか、終わってたんか。
ww2の勉強に切り替えるかね。

145:デフォルトの名無しさん
03/12/02 01:42
        / ̄ ̄ ̄ ̄\
∧_∧  | ほげらっちょ!   |
 (;∀;∩)< ほげらっちょ! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 


146:デフォルトの名無しさん
03/12/03 00:04
URLリンク(jakarta.apache.org)

147:デフォルトの名無しさん
03/12/04 11:32
Validationの使い方教えて!

148:デフォルトの名無しさん
03/12/04 21:44
なんかよくわからんが…
なんでわざわざsunの主流からはずれる方向を選ぶんだろ。

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

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

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

と、ここまで書いておいて気付いたんだけど。
Tapestryの応援スレだったんだね。フレームワークスレだと思ってた…
水を差したのであれば、すいません。

149:デフォルトの名無しさん
03/12/04 23:10
気付いたならsubmitするなよ

150:デフォルトの名無しさん
03/12/04 23:17
>>149
さんせいマンセー

151:デフォルトの名無しさん
03/12/05 14:48
折角書いたのを捨てるのもったいない気持ちも分かるw

152:デフォルトの名無しさん
03/12/06 01:50
それも貧乏性だろ>もったいない

153:デフォルトの名無しさん
03/12/06 12:49
びんぼー(T_T)/

154:デフォルトの名無しさん
03/12/07 01:22
そもそもビンボーでなければ、オープンソースなんて使わないわけで。

155:デフォルトの名無しさん
03/12/07 18:18
>>136
その配置だとHTMLファイルを書き換えるたびに
WEBコンテナを再起動しないとだめじゃない?

156:デフォルトの名無しさん
03/12/08 01:58
>>155
そうだけどそれが何か?

157:デフォルトの名無しさん
03/12/08 04:03
つづれおり、いいよね。

158:デフォルトの名無しさん
03/12/08 12:01
ユーガッタフレンド〜♪

159:デフォルトの名無しさん
03/12/09 00:48
>>157
はぁ?

160:デフォルトの名無しさん
03/12/09 01:44
>157 キャロルキングだろ。たぶん

161:デフォルトの名無しさん
03/12/12 00:25
age

162:デフォルトの名無しさん
03/12/13 16:10
>>1
次はまだか?

163:デフォルトの名無しさん
03/12/14 23:24
        / ̄ ̄ ̄ ̄\
∧_∧  | ほげらっちょ!   |
 (;∀;∩)< ほげらっちょ! |
 (⊃   ) |          |
 人  ヽ´   \____/
 し'(__) 


164:デフォルトの名無しさん
03/12/15 22:29
タペストリ

165:デフォルトの名無しさん
03/12/16 18:38
Tapestryってなんて読むの?

166:デフォルトの名無しさん
03/12/17 03:23
テープストーリー

167:デフォルトの名無しさん
03/12/17 21:29
つまんねぇ

168:デフォルトの名無しさん
03/12/20 03:07
>>1
次はまだかい?もう年越すぜ?

169:デフォルトの名無しさん
03/12/27 00:54
age

170:デフォルトの名無しさん
03/12/28 01:57
Tapestry のよさは、デザイン分離がクローズアップされがちだが、
もっとグレイトなのは、HTTPというプロトコル上ステートレスかつ
URL の連鎖で画面のコンテキストを追っかけるつくりになっちゃう
ところを、画面の構成コンポーネントのイベントハンドラで作り
こむ、まるで Swing みたいな設計をするところだと思うな。
その点、Struts とも Velocity とも比較するものではなく、JSF
と比較すべき存在だと思う。じゃなきゃ、Swing とかとの比較だ
な。まあ、クソスレの住人にはわからんだろうが。

このスレはめずらしく >>1 がまともかと思ったら、威張るだ
けで根性なしだったのがザンネンだ。マジにこの時期にTapestry
で成功事例もってるなら、金払っても話が聞きたかったものを。。
まわりもおだてて話させりゃいいものを、自分が理解もしていな
いのにヤヅでつぶしちまった。ほかに、Tapestry の読むに耐える
板はどっかにないもんかね?

171:初期不良
03/12/28 03:04
>>170
激しく同意
WO 触っているせいでこの重要さは身にしみてる。
オープンソースでもこんなんできるようになったとは、
と感慨ひとしおですけど実はまだきちんと触ってないヘタレでつ...

172:デフォルトの名無しさん
03/12/28 20:28
>> 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デザインをするのに向いている
と感じているので、次の案件に使ってみたいと思ってる。
その点、すでに使ってるヤシの情報は漁ってるんだけ
どね。なかなか書いてくんないね。

173:デフォルトの名無しさん
03/12/28 20:37
わりい、172だが、読み直す前にぽちっと
いっちゃって、日本語がマンセーマンみ
たいに。要は、スタンドアローンなアプリ
をVBやDelphiで作るみたいな感覚で、デザ
インに力入ったHTMLが所与できちゃった案
件でもさくさくと作れる時が近いうちに実
現するんじゃないかと。Spindle 次第では。

174:デフォルトの名無しさん
03/12/28 20:42

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

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

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

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

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

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

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

7.K 正常な人間   A 異常な人間(レッテル)

175:デフォルトの名無しさん
03/12/28 20:43
8.K&A 死

9.K&A      来世

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

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

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

13.K&A    1.に戻る

これは事実。広めようぜ

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



176:デフォルトの名無しさん
03/12/30 17:37
おっ、Tapestry賛成派の意見が増えてきた
もうJAVA World出たよ>>1

177:初期不良
03/12/30 21:21
URLリンク(www.geocities.co.jp)
spindle 使わない形のドキュメントだけどみっけた

178:デフォルトの名無しさん
04/01/01 12:58
manning のアーリーアクセス+ペーパーバック後郵送の
サービスで「Tapestry in Action」買った!もちろん英
語だけど。結構いいこと書いてある。俺は買いだと思う。

179:デフォルトの名無しさん
04/01/02 00:35
>>178 はじめの2章読めるだけで、今買う価値があるの?
はじめ2章にどれだけ有用な情報があるのかレポートよろ。

180:デフォルトの名無しさん
04/01/03 02:21
海外掲示板用オフラインリーダーを作るスレ
スレリンク(tech板)

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

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用

181:デフォルトの名無しさん
04/01/06 23:32
>>178
URL希望

182:デフォルトの名無しさん
04/01/08 20:47
age

183:デフォルトの名無しさん
04/01/15 09:49
>>178
URL希望


184:デフォルトの名無しさん
04/01/16 11:23
>>183
URLリンク(www.manning.com)


185:デフォルトの名無しさん
04/01/18 15:35
Tapestryホームページがリニューアル
URLリンク(jakarta.apache.org)
Tapestry3.0beta4も出たぞ


186:デフォルトの名無しさん
04/01/18 16:22
>>178
書籍紹介サイト?
in Actionシリーズか。
いろいろシリーズがでているもんだな。


187:デフォルトの名無しさん
04/01/24 02:22
age

188:デフォルトの名無しさん
04/01/24 02:45
Tapestryのうまい使い方載ってるサイトない?

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


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



カスタムタグを使って作ったJSPファイルを
また修正しないといけないとか?

189:デフォルトの名無しさん
04/01/24 13:14
>> 188
VとCを作り直す対応だけでOKですよ〜

190:デフォルトの名無しさん
04/01/24 16:49
>>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変換ソフトも作成可能と思われる。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4773日前に更新/191 KB
担当:undef