WebObjects 3インタンス目
■ このスレッドは過去ログ倉庫に格納されています
0001りお
02/06/14 23:58ID:9v1vZuBxWebアプリ開発環境「WebObjects」について語るスレです。
http://www.apple.co.jp/webobjects/
http://www.apple.com/webobjects/
1スレ目:http://pc.2ch.net/test/read.cgi/php/989562708
2スレ目:http://pc.2ch.net/test/read.cgi/php/1013695600
■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・さやかタン (´Д`;)ハァハァ
0772nobodyさん
02/09/15 10:12ID:???それでも毎回毎回、すぐに満席になっちゃうんだから、人気があるというか
導入したい人は多いという罠。
キャラビットの自慢話というよりは、倉橋センセぐらいになると沢山の導入事例が
あるんでしょうけど、ああいったパブリックな場で紹介してもイイよ、と
許諾してくれた中で紹介しやすかったのがキャラビットだけだったのでは。
ちょっと担いじゃったけど。工作員ぽいかな?(w
0773nobodyさん
02/09/15 16:10ID:???この手の入門セミナは毎週やってくれるくらいじゃないと
裾野が広がらないでしょう。
0774nobodyさん
02/09/15 16:35ID:???そーだよね、講師も一人だけじゃなくて、複数人用意して同じ内容を
繰り返せばいいだけの話だし。けど、漏れは某大手企業の新入社員
向けのセミナを月〜金曜日の午前と午後2回、3時間ずつやったことが
あるけど、最後は声がガラガラで体力ヘトヘトだったよ。
一人で喋るには限界があるよな、つうか、無料セミナだから
カネも満足に出ないだろうに。ギャラ少なければ好きな話を一つぐらい
やらせてもらってもいいかもな(w
0776nobodyさん
02/09/15 17:41ID:???でも、あんまり開催しまくって、国内ユーザーが増えすぎてしまうと、
アップルジャパンでのサポートが回らなくなる罠。
あそこは、サポート人員がほとんどいないらしいからなー。
0777nobodyさん
02/09/15 21:50ID:???というか、サポートなくても、ヘルプファイルとOmniGroupの過去ログで
ほとんどまかなえてしまうから別になくても大丈夫という罠。
でも企業としてちゃんとしたサポート部隊欲しいよなぁ。
0778nobodyさん
02/09/15 23:41ID:???ビジネスで導入するには、これが鍵なんだよ。
サポート体制もまともに無いような製品、稟議とおらねぇよ。
鬱
0779nobodyさん
02/09/16 01:49ID:???そうなったらそれこそプ社とか倉橋センセにサポート外注すればいいじゃん。
今よりは回りそうな気がする。
>>778
禿同。ついでにこれは技術の連中が実際にそのサポートを利用するかどうか
とは別の話。
0781nobodyさん
02/09/16 10:30ID:???/´  ̄`ヽ,
/ 〃 _,ァ---‐一ヘヽ
i /´ リ}
| 〉. -‐ '''ー {!
| | ‐ー くー |
ヤヽリ ´゚ ,r "_,,>、 ゚'}
ヽ_」 ト‐=‐ァ' !
ゝ i、 ` `二´' 丿
r|、` '' ー--‐f´
_/ | \ /|\_
/ ̄/ | /`又´\| |  ̄\
殿下はWebObjectsに興味を持たれたようです。
0783nobodyさん
02/09/16 11:19ID:???P社は実際にはWebObjectsの開発実績がほとんどなく、趣味レベルで触っている
T氏を前面に出すイメージ営業しかやってないとのこと。
某所で聞いた話なので間違いはないかと。
0785nobodyさん
02/09/16 11:39ID:???0786nobodyさん
02/09/16 11:46ID:???暇そうに実作業以外のことはできないでしょ。
プ社に仕事がないのは2ちゃんのカキコを見るまでもなく、
同社のホームページを見ればわかる。
イメージ営業というわりにはあのホムペはちょっと・・・。
なんでも理系大学院卒レベル(爆)の社員が話を聞くそうだ。
実際には院まで逝って年喰ったら普通の会社に就職できなくなって
しかたなくプ社みたいな超零細企業に就職したってクチなんだろうけど。
0788工作員
02/09/16 13:45ID:???今のプ社の前のデザインのホムペに社員の経歴書いてあったけど、
全員、大学(院)→プ社というわけではなくて、どこか別の企業に逝ってから
プ社、のようですけど。
0789nobodyさん
02/09/16 18:40ID:KUBOn0tFOSX10.2をクリーンインストールしたあとで、WO5.1を入れ直す
のはできますか?手順とかあります。(DevToolを先にいれる
とか?)
0790りお ◆/OjWxByc
02/09/16 19:06ID:mni+mqctちょうど、今日、漏れはその作業をしていた(w
手順は、HDDを初期化→10.2をインスコ→10.2についていたDevToolsをインスコ→WebObjects5.1をインスコ→WebObjects5.1.4ウプデータンをあてる
でやった。一応問題なさそう。
つうか、WebObjectsBuilderおかしくねぇ?WOImageにちゃんとバインドしてるのに
XとYが赤くなったりとか。オレ様はちゃんとバインドしてるっっつーに!と
安物ディスプレイに向かってほえてました(;´Д`)
(WebObjects5.1.4のバグなのねん)
0791nobodyさん
02/09/16 19:19ID:???参考にします。
実は、……
OSX10.1.5前後のとき、WO5.0→WO5.1よOSX10.0.3→OSX10.1.2-4の
ややこしいアップデートと、セキュリティアップデートと、DevTool
とのインストール順序と、OpenBaseのアップデートと様々なものが
こんがらがった経験あるから、心配してたのデスデス。
0792りお ◆/OjWxByc
02/09/16 19:28ID:mni+mqctおれっちはマッキントッシュをメインマシンにしてないからな(w
好き勝手にOSの入れ替えとかやってるのだ。
MacOS X 10.2は前よりだいぶマシになったけど、ウィンドウのリサイズとか
は救いようがないぐらいダメだなぁ┐(´〜`)┌。
クォーツエクストリームとか逝ってくれて少しは期待したんだが。
G4本体を赤く塗ってシャァ専用にしてみるか。3倍速くなるかモナー(w
(学生の頃は塗装工のバイトをしたのだ、スプレー塗装には自信あるぞ←強烈激烈無関係
0793bloom
02/09/16 19:34ID:oOYm4lAyhttp://www.leverage.jp/bloom/start/
0794nobodyさん
02/09/16 19:45ID:???ぎくぎくぎくっ(汗)
0795nobodyさん
02/09/16 19:48ID:???趣味レベルというには少し気合い入ってるよね。
JavaWorldに紹介記事書いたり、講演いろいろやったり。
もし本当にひとりであれだけやってるとしたら
大したもんだと思います。
0797findQuestionOrAnswer()
02/09/16 21:20ID:???EOModelerからEntity 'Sample'をJavaしてSample.javaをProjectにadd fileします。
WOBuilderでWOPopUpButtonにbindしたいのれすが、なんかうまく行きません。
ちなみに今
displayString Sample.attrib0
item Sample
list SampleArray(このComponentでSampleの中身をNSArrayにキャスト。ここが問題?)
selection SampleToString(適当なString型variable)
です。
表示は問題ないのですが、次のCompoに渡すときに、AttributionがStringにハマりません。
ちょっと何をどうbindすればよいのか分からなくなってしまいました。
何方かレクチュアしていただけませんか?
0798りお ◆/OjWxByc
02/09/16 21:48ID:mni+mqctpublic Sample itemSample;
public Sample selectionSample;
public NSArray samplesArray;
とする。
list → samplesArray
item → itemSample
displayString → itemSample.attrib
selection → selectionSample
でどうだろうか?(listにはすでにFetchしたsampleのArrayがあるとして)
selectionには、現在選択されている、配列の中のEOが格納される
(厳密には配列内のポインタが入るのか?)。よって、Itemと同じ型の
変数を指定すれば貴様も幸せになれるだろう。
ハズしていたらすまぬ。判らぬことがあったらもっと書け。
0799りお ◆/OjWxByc
02/09/16 21:51ID:mni+mqctおれっちは実物を2回ほど見たことあるが、
あの長髪はサキ・ヴァシュタールを思い浮かべるな(←年齢バレるって(;´Д`)
結構、サラサラヘアーでうらやましかったりもするが(をぃ
0800りお ◆/OjWxByc
02/09/16 21:52ID:mni+mqct0801りお ◆/OjWxByc
02/09/16 21:54ID:mni+mqct書き忘れたが、itemとselectionにバインドする変数はインスタンス化する必要はない。
連続カキコ、スマーヌ.
0802findQuestionOrAnswer()
02/09/16 22:18ID:???私もT氏にお会いしたことありますが、P社の方は長髪サラサラロングヘア
の方が多いような気が。
0803りお ◆/OjWxByc
02/09/16 22:27ID:mni+mqctどうでもいいが、801もおれっちが取ったか。ゃぉぃ(爆
>>802
そうか、ウマくいったか。よかったな。これで安心して眠れるぜ。夜用2枚重でちゃんと対策しておけよ(←意味不明(;´Д`)
0804nobodyさん
02/09/17 00:49ID:???誰もURLキボンしないとこ見るとみんな自分で捜したのね。
プ社って有名企業だな〜。
漏れの会社はこんなとこで有名になって欲しくはないけど・・・。
>>788
>今のプ社の前のデザインのホムペに社員の経歴書いてあったけど、
今現在なくなってるとしたら、なんか問題があったのかね。
各方面から叩かれて個人名載せるのが恥ずかしくなったとか。
>全員、大学(院)→プ社というわけではなくて、どこか別の企業に逝ってから
なおさら悪いって。院まで出て数年で辞めて零細企業勤務じゃ
もう転職不可能!!
漏れは年収1000万くれっるって言われてもさすがにプ社には逝けんな。
0806nobodyさん
02/09/17 14:49ID:???リレーションシップオブジェクトにオブジェクトを追加する云々をおこなう
このメソッドの意味とか使い方がよくわからんのですけど、ボクだけですか?
誰か詳しい使い方教えてください。オーム社の本だとちょっと難しくて・・・
0807nobodyさん
02/09/17 15:01ID:???なら、使わなければいいだけじゃん。
0808nobodyさん
02/09/17 15:04ID:???○・・・目的の実装を実現するために適切なメソッドを使う
0809nobodyさん
02/09/17 15:55ID:???「WebObjectsではデータベースにExcel・Word・PowerPointを格納して検索できるのか?」
と聞かれました。
とりあえず私の知る限り無理なきがするのですが...そういう機能をもった
アプリケーションサーバーやデータベースがあるのでしょうか?
ついでに画像や動画や音声ファイルもデータベースに"格納"したいとのことでしたので
こちらは検索はそれ用のソリューションを購入しないと無理。
オススメ的にはそういうもんはDBに入れないと答えましたが、
他のAP鯖ではバイナリもすべてDBに突っ込むのが正解なのでしょうか?私にはどうしてもそのメリットがわかりません。
配列扱いにして「似たような配列の画像を探せー」ならわからない気もしないのですが
ワタクシ、激間違っていますでしょうか?なんだか自分が井の中の蛙に思えてきました。
0810ドドドド素人<-黙ってろよヴォケ!
02/09/18 02:49ID:???>Excel・Word・PowerPointを格納して検索できるのか?
これはAP鯖の機能というよりDBの機能になるのでは?あるいはJustのConceptBase
のような全文検索エンジンをDBとは別に入れるとか。
>他のAP鯖ではバイナリもすべてDBに突っ込むのが正解なのでしょうか?
>私にはどうしてもそのメリットがわかりません。
Oracle Intermediaだったら画像サイズを自動的に生成してくれてPCサイト用も
携帯サイト用も1ソースで済んでハッピ〜だった気が・・・・これだけじゃないで
すけどね、Intermedia。確か。ウル覚え。
激しくいいかげんな情報なのでsage
0811nobodyさん
02/09/18 02:54ID:???>今現在なくなってるとしたら、なんか問題があったのかね。
これどっかに残ってないかな?
ちょっと手を加えれば3日は笑えるページができそうなんだが。
なにしろ***理系大学院卒レベル***の社員だもんね〜。
そざかし仕事できるんだろーな。
0812?E?t?@?C?809
02/09/18 12:15ID:???画像エンコーダー付きですか、ちょっと便利ですね。
「JustのConceptBase」はこれからgoogleしてきます。
0813nobodyさん
02/09/18 12:27ID:eCAyCH1cSQL Serverもいけるはず。
たあし全文検索かけたいだけなら、Namazuとか使ったほうが手っ取り早い。
しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。
0814nobodyさん
02/09/18 20:58ID:???InterMediaの味を知った客先はとんでもない大容量の映像とかなんだの
入れたいっていいはじまるからな…Oracle9iのInterMediaだけど、
ハードPowerそれなりのモノを用意しないと遅いぞ。
最初、Pentium1Ghzの鯖1台用意してテストした時はまぁまぁのパフォだったけど
いざ運用となったら社内の人間が100人ちかくこりゃ便利だって使い始めて。
メモリ1G搭載してても遅くて、結局ハード増設。気をつけれ。
全文検索だったらNamazuでイイとおもう。
いらなくなったちょっと遅めのマシンにRedHatとかSolaris入れて
使うなんてぇのもいいし(もちろん、ユーザの利用状況にあわせて)
>>しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。
ハゲ道。お互いに何を実現したいかを酒でも飲みながら話し合った方がいいかもな。
0815nobodyさん
02/09/18 21:02ID:???つうか、使いたいから使うんじゃなくって、本とかに載っているから
テストしてんだろうか?
addObjectToBothSideRelationshipWithKeyはEOModelorの
リレーションシップオブジェクトのインスペクタ開いて、OwnsDestination(だったかな?)
とセットで使うとEOを保存するとPkyもDestination側のEOに伝達されて
外部Keyに該当するAttributeに値が入るつー仕組みじゃなかったっけ。
そのへんを調べてみたらどうだろう?
オーム社の本は洋書をそのまま和訳したから時々何を書いているのか
わからんところあるから原書読んだ方がはやかったりするぞ。きっと(w
0816nobodyさん
02/09/19 19:49ID:???最近WOを始めて、PostgreSQL入れて「さぁ、やるぞ!」って思ったら
トラブル勃発で泣いてます。
EOModelerからSQLがジェネレートできなかったりなどなど…
そこで少し先輩方にお聞きしたいのですが、PostgreSQLを使ってる方は、
postgresのアカウントでWO開発しているのでしょうか?
0817りお ◆/OjWxByc
02/09/19 21:30ID:???MacOS X からはわからんが、Windows2kでもEOModelorからはSQLGenerateは
あまりアテにならないので、おれっちはDB構築はSQLを直接PSQLで叩いていますが、なにか?(違)
0818816
02/09/19 22:37ID:???私も明日ターミナルからやってみようと思います。
OS Xで開発するときはpostgresアカウントでログインしてProject Builderとか、
WebObjects Builder使ってますか?
0819nobodyさん
02/09/20 03:49ID:???院卒=頭良い=仕事デキル
んだと本気で思ってるとしたらプ社はやはりドキュソかと・・・。
0820nobodyさん
02/09/20 14:30ID:/MLJ70M7だったら、べつにぽすぐれのアカウントのひつようは無いんじゃない?
EOモデラーの接続情報にぽすぐれで使うアカウントとパスになってれば
いいんじゃないの??
Terminalからいじるときはsuコマンドでユーザ切り替えればいいんだし。
はずしてたらすいません。
0821b
02/09/20 14:58ID:+oiCjvk90822nobodyさん
02/09/20 19:54ID:???ありませんか?
WebObjectsというよりはEOFのプログラミングなのかもしれませんけど。
ソートに関するロジックを書いていて、Entityの構造が将来にわたって変更になっても
いちいちプログラムに手を加えることなくラクチンにできる方法がないかと。
0823822
02/09/20 19:58ID:???ec.revert()で内容が無効になりますが、ecが保持してるEO全てが無効になって
しまいますよね。できれば、指定のEOをねらい打ちするかのように無効に
したいのですが、できないでしょうか。
NSMutableArrayクラスのメソッドを使って処理をして、最後の最後で
insertObject()するというのもやってみたんですが、ロジックがやたら
長くなってまったので、なにか良い方法はないかと。
0824822
02/09/20 20:02ID:???NSMutableArrayにEOをaddObjectしているんですが、これをソートしたり
することはできませんか?
さらにもう一つ。DBからフェッチしてきたEOのNSArrayですけど、さらに
絞り込み、みたいなことをやりたいときはみなさんどうしていますか。
VBですと比較的簡単に実装できるんですが、、再びqualifierを
作って結果的にSQLをDBに投げることになるのでしょうか?
0825りお ◆/OjWxByc
02/09/20 21:02ID:???ちゃんと調べてから書け、このヴォケェ!
と、いってみるテスト...ちょっとまて、サンプルも必要だろ。
つうか、書いてる意味から考えるから。
0826りお ◆/OjWxByc
02/09/20 22:12ID:???Movie sampleMovie = (Movie)movieDisplayGroup.selectedObject();
EOClassDescription movieDescription = sampleMovie.classDescription();
NSArray attributeArray = movieDescription.attributeKeys();
Enumeration enum = attributeArray.objectEnumerator();
while (enum.hasMoreElements()){
String attribute = (String)enum.nextElement();
System.out.println("attribute name = / " + attribute ) ;
}
とりあえず、サンプル。カスタムEOで定義されているメソッド(key)の
一覧を取得できる。key一覧をStringのArrayで持ってくるから少しは便利かモナー。
もし、リレーションシップ名も欲しければ、EOClassDescriptionにそれっぽいメソッドが
あるから探してクレ。
ただ、希望してるのはEOModelorのAttribute一覧ってかいてあるんだよな。
その場合はEOCustomObjectからEOClassDescriptionを取得してそこから
EOEntityからEOModelGroupを取得してと、徐々に奥に入っていくようなカンジで
親になるオブジェクトを取得するメソッドがそれぞれ用意されているから
たどっていって一覧をゲッチューすればよろし。
参考にならなければもうちょっと希望なんかを書いてクレ。
0827りお ◆/OjWxByc
02/09/20 22:18ID:???ちょぃウソあり(ノ´Д`)ノ
EOCustomObjectからEOClassDescriptionを取得してそこから
EOEntity→WOModelGroupなんて取得できへん(ワハハハ
ちょっとまて、むかぁしのプロジェクトから何かあるか探ってみるか。
0828りお ◆/OjWxByc
02/09/20 22:37ID:8AL7Hvbt昔のプロジェクトにゃなかったんで作ってみた。いちおう動くから試してミロ。
つうか、オムニのMLにゃこの手の内容はゴロゴロしてるかモナー
EOModel eoModelObj = EOModelGroup.defaultGroup().modelNamed("WOMovies");
NSArray entityArray = eoModelObj.entities();
Enumeration entityEnum = entityArray.objectEnumerator();
while (entityEnum.hasMoreElements()){
EOEntity entity = (EOEntity)entityEnum.nextElement();
System.out.println("Entity name = / " + entity.name() ) ;
Enumeration attributeEnum = entity.attributes().objectEnumerator();
while (attributeEnum.hasMoreElements()){
EOAttribute attribute = (EOAttribute)attributeEnum.nextElement();
System.out.println("Attribute name = / " + attribute.name() ) ;
}
}
選択したEOをさかのぼっていくようにしてEOModelorの情報をゲットするやりかたじゃないけど、
まぁ、ガマンしてくれ。あれ、でもどうやってEOModelorの内容を知るかまでは
書いてないからな、どうだっていいや(w
0829りお ◆/OjWxByc
02/09/20 22:46ID:8AL7Hvbtこれでどうだ??
EOEditingContext ec = this.session().defaultEditingContext();
Movie invalidateMovie = (Movie)movieDisplayGroup.selectedObject();// "無効にしたいEO"
EOGlobalID gid = ec.globalIDForObject(invalidateMovie);
ec.invalidateObjectsWithGlobalIDs( new NSArray(gid) );
特定のEOをキメうちで無効にしたい、というので使えると思う。
ただ、動作確認はちゃんとやるように(リレーションシップがどうなるか保証もてないので)
0830りお ◆/OjWxByc
02/09/20 22:55ID:8AL7Hvbt今日は大盤振る舞いだ(笑)
NSArray内のEO群をソートする方法か?漏れはもうセクゥスして寝たいから(w、
サンプルは自分で考えてくれ。ヒントだけ。
EOSortOederingクラスに、sortedArrayUsingKeyOrderArrayというメソッドがある。
そいつがArrayに対してEOSortOrderingオブジェクトを与えてソートを実行するメソッド。ぐぴゃ(⌒ι⌒)←意味不明
で、再度絞り込みをしたい件だけど、一例としてWODisplayGroupにはsetQualifier()メソッドがある。
こいつにEOQualifierオブジェクトをブチこんでupdateedDisplayedObjects()を実行すれば
DBにSQLを投げずにWOdisplaygroup内で持つEOのArrayでQualifyがかかる。と、おもった。ためしてねぇけど(笑)
NSArrayの場合だと、 EOQualifierクラスにfilteredArrayWithQualifier()メソッドがある。
そいつにEOQualifierオブジェクトともとになるNSArrayをブチこんでやると
SQL投げずにフィルタされる。あとは実装次第ってぇところだな。
がむばってくれ。わからんことがあったら、もっとかけ。
中レベルまでの教えて君大歓迎だ(w
0831822
02/09/21 08:27ID:???どうもありがとう〜♪
これからサンプル試してみます。うう、うれぴぃ。
0832理系大学院卒
02/09/21 18:03ID:???技術を一つ教えてやろう。WOでPDFを加工する技術だ。
Acrobatって知ってるか?あのソフトはVBから操作ができるんだ。
院も出てないお前らは知らなかっただろうけどな。
え?VBとWOが何の関係があるんだって?
まあ、お前らみたいな素人にはわからないだろうが、WOはEXEプログラムを
実行することができるんだ。
つまりWOからVBプログラムを起動してAcrobatを操作すればPDF加工が
できるってわけだ。どうだ?目から鱗が落ちる思いだろう?
理系大学院卒の僕だからこそ考え付いた画期的な方法だよ。
WOとVBのプログラムは時給1000円の学生アルバイトにやらせればいい。
派遣会社に時給2000円という破格の単金を提示して依頼しようと
したこともあったけどナメた態度をとられたから、
全部こっちから切ってやったんだ。
やっぱりビジネスは冷淡じゃないと駄目だね。
それとこの仕組みはビジネス特許申請中だから真似しようとしても無駄だよ。
僕の会社にはこういう申請中の特許が多数ある。
嘘だと思うなら会社のホムペを見てみろ。
残念ながら実用化したものは一つもないが、近い将来には僕の会社は
特許料収入だけでやっていけるようになる予定だ。
まあ、こういうのをビジネスっていうんだよ。
お前らもこういう視点で仕事ができるようにならないといけないね。
0834りお ◆/OjWxByc
02/09/21 19:34ID:n+jiSbS4>>831
試した結果はどうだ?結果を教えてクレ-.ちょぃ気になったんで。
828でEOEntityオブジェクトを取得してからEOAttributeのArrayが取得
できているんだけど、何となく、別の方法でもゲッチュできるかもしれん。
827で書いた、現在のEOからさかのぼるようにしてdefaultModelGroupを
取得する方法をちょっと模索してるんだが、普段使わないようなこと
やるから時間かかってるし(w
つうわけだ。なんかワカランことがあったら書いてくれ。もうすぐ次スレだしな。
次はインタンスは辞めて、別の名前にしようZeee (w
0835りお ◆/OjWxByc
02/09/21 20:46ID:n+jiSbS4専用のHTML編集ツール(WebObjectsBuilderという)を使って
HTMLタグに対しWebObjectsが使うエレメント(ダイナミックエレメントという)を
設定する。
たとえば、表(TABLE)のTRを繰り返し表示させたい時。
HTMLにするとこんなカンジ。(一部タグを省略。TRの部分だけペースト)
<WEBOBJECT NAME=Repetition1>
<TR>
<TD><WEBOBJECT NAME=Hyperlink1><WEBOBJECT NAME=String1></WEBOBJECT></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String2></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String3></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String4></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String5></WEBOBJECT></TD>
</TR></WEBOBJECT>
ここで、<WEBOBJECT >〜</WEBOBJECT>タグがWebObjectsが使う独自タグ。
もちろん、実行時にはこのタグはブラウザには見えない。
<WEBOBJECT NAME=Repetition1>と定義してあるのが、</WEBOBJECT>までを
繰り返し表示するWebObjectsのダイナミックエレメント。
(WORepetitionという)
0836りお ◆/OjWxByc
02/09/21 20:46ID:n+jiSbS4で、このHTMLとは違う別定義ファイルには、
Repetition1: WORepetition {
item = itemForMovie;
list = movieDisplayGroup.displayedObjects;
}
てなカンジに定義されていて、listには配列オブジェクトが、
itemには配列オブジェクト内の各オブジェクトの受け皿になる型を
セテーイしておく。この別定義ファイルは、HTMLを編集する専用ツール
(WebObjectsBuilder)上でGUIで設定した内容が自動生成されるので
開発者が基本的にいぢくる必要はない。
実行時は、WebObjectsのフレームワークが勝手にlistにセテーイされた
配列のナカミを繰り返し読み込んで、上記の場合は<TR>を作り上げていく。
WebObjectsフレームワークの場合は<TR>タグをはじめとするHTMLを生成するためのロジックを
書く必要はない。ツールでセテーイした内容に基づき、Javaで書いたロジックの実行結果や
フレームワークが実行した結果をHTMLに展開してくれる。
だいたい、こんなもんれす。MSのVisualInterDEVとかも同じかな?でもちょっと違うんだよな。
なんかワカランことがあったらどんどん書いてクレ-.
0837りお ◆/OjWxByc
02/09/21 20:53ID:n+jiSbS4HTMLテンプレート(としておく)は、WOコンポーネントと
呼ばれて、構築するプロジェクト内に保存されて、、
<WEBOBJECT>タグを含んだhtmlファイルと、
<WEBOBJECT>タグ(=ダイナミックエレメント)がどのような
データを持って振る舞いをするか、を定義した*.wodファイルや
WebObjectsが使う独自クラスの挙動を定義した*.wooがあって
一つのパッケージになっている。(*.wo)
0838りお ◆/OjWxByc
02/09/21 21:00ID:n+jiSbS4全て同じ名前になっていて、(Sample.java ,Sample.wo(Sample.html , Sample.wod , Sample.woo ))
実行時にクラスがインスタンス化される。この辺の最初のファイル
生成もツールがやってくれる。
実行時はhtmlファイルをレンダリングする途中で<WEBOBJECT>タグが
あればWebObjectsフレームワークが*.wodに定義されている内容に
従って同名のインスタンス化されたJavaクラスのフィールドを取得
したりメソッドを実行して結果をhtmlへ展開(レンダリング)する。
こんなカンジです。
0840りお ◆/OjWxByc
02/09/21 21:07ID:n+jiSbS4言われるのは、htmlに<WEBOBJECT>タグを書いておいて、定義ファイル(*.wod)を
フレームワークが読み込んで同名のインスタンス化されたJavaクラスと
データのやりとりをする部分にあると思われる。htmlファイルには
直接Javaクラスのメソッドなんかを書いても実行できない仕様に
なっているから理屈でも現実でも完全に分離していることになる。
0841りお ◆/OjWxByc
02/09/21 21:09ID:n+jiSbS4いじらないでね、とか約束をつけておけばあとは気にすることはない(一応は(ワラ )
0842りお ◆/OjWxByc
02/09/21 21:14ID:n+jiSbS4日本語になってない(;´Д`)スマソ
PerlやPHPをやったことがある方なら、WebObjectsの便利さが
きっとわかってくれると、おもったりするんだが。たう゛ん。
0844コンテンツの401
02/09/21 21:23ID:???各行の中身をそれぞれ対応する各オブジェクトに入力したい(複数行一括入力)
なんて場合にはどうすればいいの?
0845りお ◆/OjWxByc
02/09/21 21:26ID:n+jiSbS4ええと、先ほどから出ている、htmlとは別の定義ファイル(*.wod)に
定義する。厳密には、どのような文字出力をするのかといった振る舞いを
同じ定義ファイル内に書いているんだな。アチョー.
0846りお ◆/OjWxByc
02/09/21 21:30ID:n+jiSbS4ズリセンしてクソして風呂はいるから、その後で書くのでまっててクレー.
0847コンテンツの401
02/09/21 21:37ID:???ういっす。すまんすsage
あと、例えば微妙に動的な文言
「『新規入力』画面」と「『登録変更』画面」ってのは
よくあるテンプレート系エンジンだったらifdefとかを直接ページに書いちゃうと
思うんだけど、WOの場合はどうしてるの?
いろいろ知りたいsage
0848りお ◆/OjWxByc
02/09/21 22:04ID:n+jiSbS4クチで説明するのがかったるいので、サンプルの実行結果(HTMLソース)をば。
<form method="post" action="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1">
<P ALIGN=CENTER><FONT SIZE=5>EditMovies</FONT></P>
<TABLE ALIGN=CENTER>
<TR><TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.0.1"> EOF Next Generation</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Surreal</TD><TD><input type=text value="1996/01/25" name="1.1.0.9"></TD></TR>
<TR><TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.1.1"> Star WOB</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Drama</TD><TD><input type=text value="1999/08/22" name="1.1.1.9"></TD></TR><TR>
<TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.2.1"> WOF The Next Big Thing</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Action</TD><TD><input type=text value="1999/08/22" name="1.1.2.9"></TD></TR><TR>
<TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.3.1">37.2 le Matin [Betty Blues]</a>
</TD><TD></TD><TD>Cargo Films</TD><TD>Drama</TD><TD><input type=text value="1986/01/03" name="1.1.3.9"></TD></TR><TR>
<P><input type=submit value="insert" name="1.7">
<input type=submit value="delete" name="1.8">
<input type=submit value="update" name="1.9">
</P><
/form>
0849りお ◆/OjWxByc
02/09/21 22:10ID:n+jiSbS4余計なタグはとっぱらって、TABLE内にテキスト入力フィールドを
各TDに配置したやつを入れた実行結果と思ってくれ。
で、inputタグのnameエレメントにそれぞれ1.1.0.9といったユニークなキーが
割り振られている。FORMの内容がサーバーに送られてからサーバー側の
任意のセッションオブジェクト(ここでは、最初のFORMタグにある
actionエレメントに、長いURL内にあるjHvAdoUO0bZbdb6FgYmAXMてのが
セッションID)で、サーバー側でこれをキーにしたオブジェクトが
生成されていて、その中にname=1.1.0.9がどれとつながっているのか、
なんてぇのが管理されている。というイメージだとわかりやすいだろうか。
Submitの場合もツール上では、Javaクラスに定義された任意のメソッドを
セテーイして、実行時に実行されると指定はするが、htmlソースだと、
nameで管理された番号でメソッド実行なんかを行っている(もちろん、
この番号はWebObjectsが動的に割り振ったもの)。
0850りお ◆/OjWxByc
02/09/21 22:16ID:n+jiSbS4WebObjectsの場合は実装方法がいくつか用意されている。
一つは新規登録用、更新用と別々の画面を作成する。もちろん、これは
似たような画面になるので効率が悪い。
もう一つは新規登録用と更新画面の入力項目で共通になる部分を
パーツ化しておいて(といっても、htmlと定義ファイルがWebObjectsのルールに従ってパーツ化したものだけど)、
それが他のコンポーネントでも使い回しができる「部品」として
保存できる。(ようは、JavaBeansを作っているようなモンだ。かなり強引だが)
まぁ、他にもダイナミックエレメントを使って条件(ロジックで決める)
によって任意のHTML表示を実行時(HTMLレンダリング時)に切り替える方法も
ある。まちがってもHTML内にロジックを書くことはない(除JavaScript)
0851コンテンツの401
02/09/21 22:38ID:???なるほどなるほど。いい感じだねえ〜
name要素がコンフリクトしない仕組みにするとやっぱりそうなるよねえ。
>>850
ループはともかくifdefぐらいならデザイナに触らせてもいいかな?
って気もするけどね・・・ともかくThx!
あともう1コだけ、WebObjectのページ遷移(というかアプリケーションのフローの定義)ってどうなってるの?
0852コンテンツの401
02/09/21 22:45ID:???例えば、あるビジネスオブジェクトの
「入力」→「確認表示」→「登録完了」
なんていうフローはどうやって定義するの?
0856nobodyさん
02/09/22 16:15ID:???0857nobodyさん
02/09/22 17:37ID:???どっちでもいいからさ、隔離スレがあっただろ。
http://pc.2ch.net/test/read.cgi/php/1025561456/
こっちでヤレ。
ここはWOFの話しをするところであって、P社の話しをするスレじゃねんだよ。迷惑だ。
ここでそういう話題を粘着気質にやってる香具師は、P社と同レベルって感じだな(w
0858nobodyさん
02/09/22 18:48ID:???さすがは理系大学院卒というべきか。
おいらの会社もこういう発想ができるようになるとP社みたいな
有名企業(笑)になれるんか。
これだけだと隔離スレでヤレって言われそうだが、
EXE起動した場合のセキュリティってどうなるのかね?
EXEの中から好きなことやりたい放題?
0860nobodyさん
02/09/22 20:35ID:???すべてに当てはまる話しか。
Javaでruntime.exec()が使える環境だったら、どれも同じだろ。
実装者がそう実装していればの話しだけど。
0861nobodyさん
02/09/22 21:48ID:6gZmFq4J0862香具師
02/09/22 22:46ID:???そんな漏れも釣り師の思うツボ(w
0864nobodyさん
02/09/23 02:31ID:???なんでexeなんか使うんだ?
0866しらべた
02/09/23 09:14ID:???情報提供:三省堂
■[香具師]の大辞林第二版からの検索結果
こうぐ-し かう― 【香具師】
(1)香具を作る人。また、それを売る人。香具屋。
(2)やし(香具師)。てきや。香具屋。「―のいひぐさをよく覚えたぜ/滑稽本・浮世床 2」
(3)>>864のことを指す。
■[香具師]の大辞林第二版からの検索結果
0868nobodyさん
02/09/23 15:03ID:???香具師の使い方間違ってるヤシがいた
↓
香具師の意味を間違ってるぞ
↓
じゃぁどんな意味か言ってみろ
↓
>>866
ここでも見るとは(;´Д`)
しかもほぼ同じ時間。
0869nobodyさん
02/09/23 15:25ID:???香具師話のせいで質問が埋もれちゃったじゃないか。
ページ制御だが、ハイパーリンクやフォームのボタンのようにアクションを
起こすことが出来る場所に、遷移したいページのidentifierを書くことが
出来る。直接名前を書いてもいいし、ページを返すメソッドを書いてもいい。
単純に移動するだけじゃなくてなにか処理を行ってから遷移したいときは
このメソッドの中にいろいろと処理を書いて、最後に次のページのオブジェクトを
返せばいいのだ。シンプル。
0871ぷぷぷっ
02/09/23 17:12ID:???あるテーブルAのa列からデータを取得しpopupに表示させて、
選択したものを他のテーブルBのb列に保存したいんだが、
やり方がわからん。
とりあえずアプリケーション開発ガイド(オーム社)の217頁のように
listにはAのDisplayGroup.allObjects
itemにはA型のaKey
displayStringにはA型のaKey.aをバインディングさせて
popupに表示させることまではできたんだ。どうだすごいだろう。
ってそれは誰でもできるんだなっ。
世話をかけてすまんな。
■ このスレッドは過去ログ倉庫に格納されています