- - PR -
JSPのメソッドについて
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-04-24 13:40
お世話になります。
ASPで書かれてあったコードをJSPに移植しているのですが、 どうしていいのか分からなくなってしまいました。 かなーり簡略化していますが、モトはこんな感じです。
つまり、条件により再帰しているのです。 そのままJSPの形式に書き直してみても当然のようにエラーになります。 <%! 〜 %>で囲めばいいと書いてあるのを見つけたので変えてみたら、 <%! 〜 %>内では暗黙オブジェクトが使えないらしくてまたエラー・・・。 こういう場合、どのように考えてどのようにコードを書けばよいのでしょうか? | ||||
|
投稿日時: 2003-04-24 14:25
まずは、変換されたJSPを掲載されることをお勧めします。
| ||||
|
投稿日時: 2003-04-24 14:30
<%! ... %> で定義するメソッドに、
引数として暗黙オブジェクトを渡してやるっていうのはどうでしょう? 使いたい暗黙オブジェクトがどのクラスなのかは調べてくださいな。 | ||||
|
投稿日時: 2003-04-24 15:44
済みませんでした。
全然形になってなくて分かりづらいと思いますが、要は指定したフォルダ配下をDOS画面でtree /fしたように表示するものです。 ASPみたいに count = fa.getfolder(Path).subfolders.count Set files = fa.getfolder(Path).files Set folders = fa.getfolder(Path).subfolders こういうのがないかと探したのですが見つけきれず、あれこれやっているうちに自分でも何をやっているのか分からなくなってきました・・・。 とりあえず、以下のようにコメントアウトして//Aのところで直接指定してあげれば、一階層だけは表示できました。
| ||||
|
投稿日時: 2003-04-24 17:51
再起呼び出しはそのまま展開すると混乱しますよね。
元の実装のまま、 <%! void show(String fPath, String fIndent, OutputStream out) { ... } %> <% show(fPath, fIndent, out); %> という定義ではためされましたか? | ||||
|
投稿日時: 2003-04-24 18:05
miss
void show(String fPath, String fIndent, OutputStream out) じゃなくて public void show(String fPath, String fIndent, JspWriter out) のほうがいいですね・・・ | ||||
|
投稿日時: 2003-04-24 22:32
<%! 〜 %>は宣言です。 ここではフィールド変数やメゾットを記述します。 メゾットを呼ぶときは <% 〜 %>(スクリプトレット)に記述しないと駄目です。 でもできればメゾットはBeanにした方が良いです。 (カスタムタグにしても良いですが) JSPに複雑なロジックを記述するのはお勧めできません。 | ||||
|
投稿日時: 2003-04-25 10:41
zaxx_MDさん:
ありがとうございます!動きました!嬉しくて涙が出そうです。 値の受け渡しは一方通行ではなかったんですね。 私が持っている本には、メソッド呼び出し側で値をメソッドに渡し、メソッドでは値を受け取ってコードを実行した後returnで返す、というものしか載っていませんでした。 凄い勉強になりました。 takuさん: | でもできればメゾットはBeanにした方が良いです。 | (カスタムタグにしても良いですが) | JSPに複雑なロジックを記述するのはお勧めできません。 実はまだそこまで勉強が進んでいません。 JSPとサーブレットの違いというか、どう使い分けるのかはなんとなく分かったような気がしているのですが、じゃあBeanって何?と自問するとサッパリです。 まだまだ勉強が必要ですね。 とりあえず、思うような動作をしたというところで一段落です。 開発はWindowsマシンですが、動作をさせるのはUnixマシンらしいので、環境依存に関してこれから調べて改良を加えるつもりです。 それが済んだらBeanのことを勉強します。 また質問すると思いますが、よろしくお願いします。 | ||||
1
