Tapestryについて語ろうよ!

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

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

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

Tapestryに興味ある人レスよろしくね!
NGNG
>>32
なんだ。
技術を習得する噺家。
あんなもん、三日あれば理解できるだろ。
基本的なこと以外は、コンポーネントの設定の話だから。

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

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

ドリってなによって聞くなよ。
NGNG
36に賛成!
NGNG
ドリってなによ?
39デフォルトの名無しさん
垢版 |
NGNG
しかし、どうもプロジェクト乱立しすぎじゃないかと思う。
一つ一つは覚えれば、複雑でわからないといったことはないが、
Jakarta全体で将来、どうしたいのかが判りにくい。
特にVelocityとTapestry、微妙にかぶっているとこもありそうだし、
Jakartaは調整が必要な気がする。

個人的には勝ち残りフレームワークしか使いたくないし。
40デフォルトの名無しさん
垢版 |
NGNG
確かにCommonsなどを見るとXML関係が妙に乱立しているね。

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

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

NGNG
とりあえず、英語のリソースを翻訳することから始めよう。
NGNG
…と思って見に行ったら、いきなりTutoriaとDeveloper's Guideがout of dateだったよ。
43デフォルトの名無しさん
垢版 |
NGNG
>>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デフォルトの名無しさん
垢版 |
NGNG
Exciteで日本語に翻訳したやつなら作ったよ
直訳だとほとんど意味不明
StatelessとかStatefulが「州」になるのが特にイケテなかった
欲しかったらbase64で貼り付けるけど?
4541
垢版 |
NGNG
>>44
俺宛のコメント?
俺は要らないよ。英語読めるから…
NGNG
>>20
> ●●●メイン●●●
> ○Tapestry本家
> http://jakarta.apache.org/tapestry/
をみるとJavaScriptを使ってメリットを力説しているみたいでワラタ

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

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

HTMLやXMLに限定することからJava以外にもどんな言語にも使えるんだね。
NGNG
宣伝?
48デフォルトの名無しさん
垢版 |
NGNG
PHPでも使えるとはいえServletコンテナ使用することが大前提なんだね。
Velocityとはそのあたりが異なり微妙だ。
なんでServletが必要なんだろう。
ドキュメントをまだよくよんでない、実際に使っていないのでまだよくわかんない。
簡潔な説明できたらよろ
49デフォルトの名無しさん
垢版 |
NGNG
>>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デフォルトの名無しさん
垢版 |
NGNG
それではカスタムタグライブラリの立場が・・・・・
51デフォルトの名無しさん
垢版 |
NGNG
>デザイナとプログラマの話し出てたけど、
>デザイナがHTML以外を使う話は聞いた(経験した)ことない。
まだあるのか?そんな職場・・・
フレームワークどうこう言うより
開発現場のやり方がおかしい
そういう分野の最新技術は追い求めないのですか?
NGNG
>>36
お前開発者なのか?
>三日あれば理解できるだろ。
3日ってなによ?3日も時間費やしてなんとも思わないの?
NGNG
>>39
プロジェクト乱立は別にいいんだよ
ただよ、それを記事で取り上げる雑誌が悪いと思う
他にネタがないのだろうな多分。
でもって、それを読んだ読者が影響されてしまう。
最初の頃は良かったが、どの雑誌もJakarta取り上げるようになって
大して役に立たないものまで紹介する始末。

NGNG
役に立つかたたないかは人による
NGNG
>役に立つかたたないかは人による
その程度のもの偉そうに取り上げて欲しくないね
NGNG
たとえばどんな?
NGNG

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

↑みたいにたいして説明できていない昨日今日使ってマンセーってのは参考にならん
NGNG
>>57
へえー。
昨日、今日使ってどうなんて関係無いだろ。
別にTapestryまんせーでもないよ。
これまで、JSPとHTMLの変換で大変だったから、
こういうアプローチだとうまくいくのかと思っただけ。

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

最新技術を使ってたら なんて
どういう技術よ。
59デフォルトの名無しさん
垢版 |
NGNG
>>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デフォルトの名無しさん
垢版 |
NGNG
これまたエスケープシーケンスの取り扱いが
面倒なことになりそうや
$や@を直に入力して使えんじゃないか
わざわざ&を&とか>を>とか<を<とかに置き換えるみたいに
$や@もエンティティ参照で置き換えねばならんかい?
NGNG
2chブラウザがかってに置き換えた?
&を &amp; 
>を &lt;
<を &gt;
とかにおきかえるってことで

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

ちなみにロジックで生成した文字列の中に&、>、<、が入っていて
それを@Insertで出力する場合は自動的にHTMLエンコードして
&amp;&lt;&gt;として出力されるのは
<bean:write>と同じです。
NGNG
しかしどこかでエスケープを気にしなければならない部分があると思うのだが
どこなんだろう?
64デフォルトの名無しさん
垢版 |
NGNG
JSP vs. Velocity
http://www.jajakarta.org/velocity/velocity-1.3.1/docs-ja/casestudy1.html
XMLC vs. Velocity
http://www.jajakarta.org/velocity/velocity-1.3.1/docs-ja/casestudy2.html

こういう比較のTapestry版があったらよろ
65デフォルトの名無しさん
垢版 |
NGNG
age
66デフォルトの名無しさん
垢版 |
NGNG
>>58
>現場でさ、JSP書くデザイナなんかいないって。
誰もこんなことやれって言ってない。
頭使って仕事分けろ。って言ったんだ。
その答えが「デザイナがJSP書く」なら何も言わないけどよ。
おまえら、デザイナと完全に分業してるの?
話しもしないの?話するのウザイとか思っている職場ですか?
NGNG
>>59
これはメリットだと思うのだけど、Struts Tilesのようにページをパーツごとに
分割している場合、ブラウザではちゃんと表示されないよね。
結局サーバを介して確認しなくちゃいけない。
68デフォルトの名無しさん
垢版 |
NGNG
age
69デフォルトの名無しさん
垢版 |
NGNG
>>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デフォルトの名無しさん
垢版 |
NGNG
>>66
うちの会社はデザイナーいないよ。
外注先デザイン会社の営業の人とは話するけど、
デザイナーとは直接コンタクト取れないね。
71Ace
垢版 |
NGNG
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デフォルトの名無しさん
垢版 |
NGNG
Tapestryのソースを見ると、
CVSでヴァージョン管理するときに
$$記号でソースコード内にヴァージョン番号などをつけるのが難しくなると
思うのだが、
そういう場合はどうすれば言いのだろうか?
Tapestryで本番JSPに変換するときだけCVSの$Id$などをはずすように
チェックアウトせなあかん?

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

<span jwcid="$remove$">$Id$</span>
とでも頭に入れるといいよ
NGNG
しかあし、たとえばこんなことをやりたいときは?
ボタンタグにヴァージョン番号をつけるんだ。

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

これも$をエンティティ参照で$を消す?
75デフォルトの名無しさん
垢版 |
NGNG
>>74
$Revision 1.2$というコンポーネントはないから、
この書き方自体意味が無く実行時エラーが出るよ
ボタンのテキストにRevision値を書きたいなら
<input type="button" value="$Revision 1.2$">

<button>$Revision 1.2$</button>
でいいんじゃない?
jwcidは存在するコンポーネント名の指定と$remove$、$content$にしか使わないよ
76デフォルトの名無しさん
垢版 |
NGNG
age
NGNG
13 名前:デフォルトの名無しさん 投稿日:03/11/02 18:25
おまえらさ、どうでもいいけど雑誌とかそういうものに流されすぎるのはよくないぞ

53 名前:デフォルトの名無しさん 投稿日:03/11/06 16:20
他にネタがないのだろうな多分。
78デフォルトの名無しさん
垢版 |
NGNG
>>77
部分抜き出しで多数派工作なんて君はマスコミ?w
79デフォルトの名無しさん
垢版 |
NGNG
>>71
次はいつかな?
80デフォルトの名無しさん
垢版 |
NGNG
>>71
俺も早く見たい。入門講座
81デフォルトの名無しさん
垢版 |
NGNG
Tapestryはほかにもどんな用途に使えるんだろう。
すべてのVelocityの機能をTapestryだけで実現することも可能なんだろうか?

Velocityを使った、EclipseのSimteekプラグインのように
プログラミング時のソースコードテンプレートに使える用途はあるのか?
82デフォルトの名無しさん
垢版 |
NGNG
>>71
俺も期待してるよ!
NGNG
>>81
simteecプラグインの間違いだった
http://simteec.aluepke.de/
84デフォルトの名無しさん
垢版 |
NGNG
>>71
今晩あたりかな?w
85デフォルトの名無しさん
垢版 |
NGNG
>>81
TapestryとVelocityはまったく別のものだよ。

Velocityはテンプレートエンジン
TapestryはWebアプリのフレームワーク
86デフォルトの名無しさん
垢版 |
NGNG
やはりWeb用にしか使えないのか?

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

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

ならば、かなり凄いことができる!?
87デフォルトの名無しさん
垢版 |
NGNG
>>86
XMLでも
Anyコンポーネント
Foreachコンポーネント
Conditionalコンポーネント
Choose When Otherwiseコンポーネント
を使えば
XSLTと同じようなことができるね
88デフォルトの名無しさん
垢版 |
NGNG
もまいら、もちつけ

まあ、ここで騒げば
簡単Struts
簡単Velocity
につづけて
簡単Tapestryが発刊されるだろう
それまで待っても遅くないよん
NGNG
>>88
簡単Velocityはクソだったらしいな・・・。

まあVelocityの翻訳がクソだったのが問題なのだが。
90デフォルトの名無しさん
垢版 |
NGNG
>>88
>>89
簡単Velocity
へのリンク希望!
91デフォルトの名無しさん
垢版 |
NGNG
>>90
http://www.amazon.co.jp/exec/obidos/ASIN/4798005975/ref=sr_aps_b_15/250-3031014-3013008
92デフォルトの名無しさん
垢版 |
NGNG
>>89
いやだから、『簡単』Velocityなのです
93デフォルトの名無しさん
垢版 |
NGNG
TapestryとVelocityを比較するとTapestryの方がよく見えてきたぞ
NGNG
>>93
例えばどういう点?
NGNG
>>94
名前
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>
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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