タイトル | 【倉橋浩一、じつはWebObjectsで飯食ってます】WebObjectsで掲示板を作る(2)空のコンポーネントを用意する | カテゴリー | WebObjects, 倉橋浩一、じつはWebObjectsで飯食っています |
作成日 | 2001/1/9 15:15:9 | 作成者 | 倉橋浩一 |
WebObjectsで開発する場合、手順はいろいろあるのですが、比較的単純なアプリですので最初に空っぽのコンポーネントだけ作ってしまうことにしましょう。前回のおさらいになりますが、コンポーネントとはhtmlページに相当するしろものです。 ProjectBuilderの一番左のコラムのWeb Componentsグループをクリックし、FileメニューからNew In Projectを選択します。次にコンポーネントの名前を入力してOKをクリックするとWizardが開きますが、今回はすべて「None」「Java」で真っ新なページを作ります。掲示板を選択するためのMainページはすでに用意されていますので、メッセージを書き込むMessagePageと表示のためのMessageListPageを追加します。なお、コンポーネント名とEOModeler上のテーブル(Entity)名とが重ならないように気をつけてください。Entity名はクラス名と同様に扱われますし、コンポーネント名はそのままJavaのクラス名になってしまいますので、WebObjectsは同じクラスが二つあるかのように誤解して、おかしな動作をします。 実は私も時々やっちゃうんですけどね。なので、それを防ぐためにコンポーネント名には必ず末尾にPageを付けるようにしています。 空のページを作ったら、まっさきにタイトルを付けておきましょう。これもよく忘れるんですよね。お客さんのところに製品を納めた後になってから「untitled」のままのページに気付いたり…。ので、最初につけておきます。WOBuilderを起動してInspectorを開いてTitle:のところに文字を入力してください。最初のページMainは"掲示板一覧"、今作ったMessagePageは"メッセージ書き込み"、MessageListPageには"メッセージ一覧"をそれぞれ設定します。ほんとは、Mainで選んだ掲示板タイトルを使いたいところですが、ま、これも後のお楽しみということで....。 ◇インスペクタを使い、Main.woにタイトルを付ける ■他のページへ飛ぶために 前述の通り、最初のページMainには掲示板の一覧表が表示されます。で、その中の一つをクリックすると次へ飛ぶ、ということをやりたいんですが、一気にあれもこれも欲張るのも消化不良の元なので、今日のところは掲示板を一つに絞ります。ただ、気は心ということで、最初のページには「掲示板へ」というリンクだけを用意し、ここをクリックするとメッセージを表示するページに飛ぶということにします。 この作業は、WebObjects Builderを使います。ProjectBuilderのWeb Componentグループをクリックし、その中のMain.woをダブルクリックします。 ここに前述の通り、頭に何行か隙間を開けてから「掲示板へ」とタイプし、センタリングし、文字サイズを大きくします。そして、「掲示板へ」を選択しておいて、WOHyperLinkのアイコンをクリックします。これで、「掲示板へ」という文字列のハイパーリンクができました。 ◇トップページのレイアウト レイアウトは、お好みで行なって下さい。なお、文字列の上の隙間、私は「shift+returnキー」で<BR>を入れましたが、「returnキー」でパラグラフとしてもかまいません。いずれにしても、お好みでどぞ。 WebObjectsのWOHyperLinkは、通常のハイパーリンクと同様に他のページへジャンプする時にも使われますが、WOアプリで生成されたWebページ上のハイパーリンクをクリックすると、 (1)WOHyperLinkのactionアトリビュートにバインドされたアクション関数を呼び出し、 (2)アクション関数の中の処理を実行した後、 (3)自分自身、または他のページを新たに生成する という動作をします。つまり、リンクを押せば、なにやら必要な処理を実行して、同じページを再表示するか、他のページへジャンプする、ということです。前回のサンプルでは、何かをクリックしても同じページの上に表示されるデータが変化するだけでしたが、これはより正確にいえば「なにやら処理を実行して、同じページを再表示」していたわけです。 今回は他のページにジャンプする必要があります。この場合は、アクション関数の中で次に呼び出すページを呼び出してやり、それを返してやるという処理をします。これはWOBuilderが必要なソースを生成してくれます。WOBuilderのウインドウ左下にあるEdit SourceプルダウンメニューからAdd Action...を選び、関数名と呼び出すコンポーネント名を指定します。 アクション関数名は何にしてもいいですが、わかりやすくするためにactionMessageListにします。コンポーネント名にはMessageListPageを入力します。何にしてもいいですが、アクション関数名は小文字で始まり、コンポーネント名は大文字で始まる名前にしてください。また、命名規則はJavaの文法に従います。 ◇アクション関数の名前とそこから返すページ名を指定します WOBuilder上には、actionMessagePageが追加されます。 ◇WOBuilderのブラウザ部分 actionMessageListが追加されているのが見えます。ちなみに、actionMessageListのすぐ上に線が入っていますが、これより上はオブジェクトや変数、下はアクション関数を意味しています。 では、actionMessageListと「掲示板へ」のWOHyperLinkをバインドします。ブラウザ部分のactionMessagePageをクリックしてそのままドラッグし、「掲示板へ」のところでリリースし、ポップアップメニューでactionを選びます。なお、これはWO 4.5での挙動で、4.0ではちょっと異なりますのでご注意ください。 ◇マウスボタンをリリースした直後 ちなみに、この時点でMain.woをセーブし、ProjectBuilderからbuild & launchすると、コンパイル終了後「掲示板へ」という文字だけのページが表示され、それをクリックすると何もない空白のページへジャンプする、という動作をします。 (「WebObjectsで掲示板を作る」は続きがあります。この項目の1回目の原稿にある「■サポートについて」についても御参照ください。) [倉橋浩一/テクニカル・ピット] | |
関連リンク | WebObjectsのページ |