タイトル【WindowsオフィスでWebObjects】いよいよ実際に動かすカテゴリーWindows, WebObjects
作成日2001/2/9 16:50:28作成者新居雅行
WebObjects Application Wizardを使ってDirect to Webによるプロジェクトを作成するところまでを前回に説明した。すると、プロジェクト名がウインドウのタイトルにあって、上部が3列に分割されており、下の部分が白く広い領域になっているウインドウが開くだろう。これが、プロジェクトの文書ウインドウであり、プログラムの編集などを行う、プロジェクトの中心的なウインドウなのだ。ここで編集作業をしたいのだが、実はプログラムを追加する必要がある。そのプログラムは以下のページに記載されている。

◇WebObjects4、4.5の日本語に関する設定方法
 http://www.apple.co.jp/webobjects/establishment.html

もちろん、キータイプしてもいいのだが、一般的にはWebページからコピー&ペーストすることになるだろう。ソースプログラムを選択して、もちろん、Command+Cなどコピーが必要だ。(実はちょっと注意がある。すぐ後で説明する。)

◇追加する部分をWebページからコピーする
 

このコピーしたプログラムは、Javaのメソッドの定義である。このメソッドを、Application.javaというソースファイルのApplicationクラスに追加する。仕上がりイメージは次の図の通りだ。

◇2つのメソッドをApplicationクラスに追加する
 

Project Builderのプロジェクトのウインドウに慣れていないとちょっと戸惑うところかもしれない。このウインドウの上部は、ブラウザになっており、プロジェクトを構成するさまざまなものをブラウズすることができる。ここで、最上位の区分でのClassesというところに、Javaのプログラム、すなわちアプリケーションの本体と言えるものが分類されている。Classesの下に、Application.javaというソースファイルの項目がある。そのApplication.javaをクリックして選択すると、その中身がプロジェクトのウインドウの下半分に出てきて編集作業ができるという仕組みだ。最初、Applicationクラスにはメソッドは1つも存在しない。そこに、takeValuesFromRequestとappendToResponseというメソッドを作成するのである。プログラムをざっと見て分かるように、アプリケーションへのリクエストや、アプリケーションの応答に、日本語のシフトJISを扱うというエンコーディングの情報を付加している。ApplicationクラスのスーパークラスであるWOApplicationの同じメソッドをオーバーライドしているので、親クラスの同じメソッドを呼び出している。つまりは、これによって、Webブラウザでの日本語表示や入力が正しく処理されるようになるということに他ならない。なお、このApplicationクラスへのメソッドの追加は、プロジェクトを新たに作成したときには必ず必要になる。
ここでプログラムをWebページから単にコピー&ペーストした場合、実はコンパイルエラーが出る。どうやら、各行の頭にある空白は、全角のスペースが使われているようなのだ。行の頭の空白をうまく削除しておく必要があるが、どうも幅のないキャラクタとして入ってしまうこともあるようだ。矢印キーで最初の文字の前に挿入ポイントを設定し、BackSpaceキーで削除をして、いったん前の行とつなげてしまい、そして改行と半角のスペースかタブをキータイプするようにしないといけないかもしれない。

それでは実際にコンパイルを行い、アプリケーションのビルドを行おう。プロジェクトのウインドウの上部にあるツールバーの一番左にBuildボタンがある。カナズチの図柄のボタンだ。それをクリックすると、Project Buildのウインドウが別途開く。さらに、カナズチの図柄のBuildボタンをクリックすることで、実際にコンパイルが行われる。なお、通常は、Application.javaファイルを変更したことになるので、そのファイルを保存するかどうかをたずねるダイアログボックスが表示される。もちろん、Save and buildボタンをクリックして保存を行い、コンパイルとビルドを行う。

◇コンパイルを行う
 
 

Project Buildの下側にコンパイル時のメッセージが出てくる。他の部分はエラーメッセージなどが出てくるが、通常はWizardの出力結果なのでエラーにはならないだろう。もっとも、Webページからコピー&ペーストしてApplication.javaに追加したときに余分なキャラクタが除去されていない場合にはエラーが出るので、その場合には、再度Application.javaの中身をチェックする。

(続く)
関連リンク