- - PR -
include を for文内で作成
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-05-08 14:16
ご自分で気づくかもしれませんが一応・・・
それより、これではどうでしょうか?
[ メッセージ編集済み 編集者: zaxx_MD 編集日時 2003-05-08 14:23 ] | ||||||||
|
投稿日時: 2003-05-08 15:32
zaxx_MDさんありがとうございます。
>ご自分で気づくかもしれませんが一応・・・ >コード: >------------------------------------------------------------------------------- > ><jsp:include page="./funcModule/<%= fileName[i]%>" flush="true" /> > >------------------------------------------------------------------------------- う、勉強不足ではずかしいです。。。 しかし、↑これはやってみたのですがエラーこそ出ないものの、 やはり無反応でした。。。。ToT そこで、以下の方を使用したら実行に成功しました! >コード: >------------------------------------------------------------------------------- 略 >String filePath="./funcModule/"; 略 ><jsp:include page="<%= filePath.concat(fileName[i])%>" flush="true" /> 略 >------------------------------------------------------------------------------- こちらの方がパス変更の可能性とかを考えると実用的ですね。 色々とご教授ありがとうございました! なぜ、↓これが動かないのかはもう少し調査してみます。 <jsp:include page="./funcModule/<%= fileName[i]%>" flush="true" /> | ||||||||
|
投稿日時: 2003-05-08 18:33
>Syntax--------------------------------------------
><jsp:include page="{relativeURL | <%= expression %>}" flush="true" /> >-------------------------------------------- >これはつまるところ、 >relativeURL か <%= expression %> のどちらかを使え、ということであって >relativeURL と <%= expression %> は併用できないってことなんでしょうか? 私ならそう解釈します。 ご指摘のサイトにも The relative URL that locates the file to be included, or an expression that evaluates to a String equivalent to the relative URL. と書いてありますし。 無理矢理そういうことをするならば、 page="<%="./funcModule/" + fileName[i]%>" となるかな? | ||||||||
|
投稿日時: 2003-05-09 12:10
>無理矢理そういうことをするならば、
>page="<%="./funcModule/" + fileName[i]%>" >となるかな? amnakyさんご教授ありがとうございます。 ご指摘の方法でも実行できました! 一度以下のような記述で失敗していたので、先述のSunのサイトで言われているように relativeURL と <%= expression %> の併用は不可なのだと思い込んでました。 単に書き方が誤っていただけだったんですね。 ソース------------------------------------- <jsp:include page="<%='./funcModule/' + fileName[i]%>" flush="true" /> ------------------------------------------ この場合、何を血迷ったか、 page の属性値は「"」ダブルクォーテェーションで括るものだと認識していたので relativeURL と <%= expression %>が混合する場合、 relativeURLを「'」シングルクォーテェーションで括っていました。。。。 でも、amnakyさんご指摘の方法だと「./funcModule/」が 「"」の外に剥き出しに放置されてるように見えるのですが、問題ないのでしょうか? 実行できてるのがちょっと不思議です。すいません、質問が素朴すぎて。。 | ||||||||
|
投稿日時: 2003-05-09 14:15
>relativeURL と <%= expression %> の併用は不可なのだと思い込んでました。
>単に書き方が誤っていただけだったんですね。 いや、やはり併用はできないんですよ。 どちらかしか使用できません。 page="<%="./funcModule/" + fileName[i]%>" というのは、 "./funcModule/" + fileName[i]の結果作られる 一つのStringをpage属性に渡していることになります。 仮にファイル名がfoo.jspならば、 "./funcModule/foo.jsp" という文字列が渡されることになります。 <% String str = "./funcModule/" + fileName[i]; %> <jsp:include page="<%=str%>"/> としているのと同じことです。 <jsp:include page="<%="a" + "b" + "c" + "d.jsp"%>"/> なんていうこともできるし、 <jsp:include page="<%=new String("a" + "b.jsp")%>"/> としても動きます。いい悪いはおいとくとして。 '<%='と'%>'の間は、 JSP中でout.print("...")とやるときの、 'print('と')'の間と同じと考えてみるとわかりやすいかも。 説明するのは難しいですねえ。 私は迷った時はJSPの仕様書を眺めます。けっこうわかりやすく 書いてありますよ。 http://java.sun.com/products/jsp/download.html#specs [ メッセージ編集済み 編集者: amnaky 編集日時 2003-05-09 14:17 ] | ||||||||
|
投稿日時: 2003-05-12 11:19
amnakyさん、またまたご教授ありがとうございます!
>いや、やはり併用はできないんですよ。 >どちらかしか使用できません。 >--以下略-- なるほどぉ。。わかりやすい説明ありがとうございます。 とっても良くわかりました。 >'<%='と'%>'の間は、 >JSP中でout.print("...")とやるときの、 >'print('と')'の間と同じと考えてみるとわかりやすいかも。 これも、なるほどです。こう考えるとわかりやすいですね。^^ でも、やっぱり腑に落ちない点が一点だけ残ってます。 ちょっとしつこくなってきたんですけど、 お付き合い頂けるとうれしいです。 私はJava言語の前はScript系言語をやってたのですが、 quotes は必ずセットで使用することという仕様で、 「"」が出現すると直ぐ次に記述されている「"」と対として 認識されるとかいうものでした。 頭では理解しても、以下の記述だと"<%="と" + fileName[i]%>"が セットで ./funcModule/ がどうしてもはみ出ているように見えてしまいます。 ソース------------------------------------------ page="<%="./funcModule/" + fileName[i]%>" ------------------------------------------------ >説明するのは難しいですねえ。 >私は迷った時はJSPの仕様書を眺めます。けっこうわかりやすく >書いてありますよ。 >http://java.sun.com/products/jsp/download.html#specs ご指摘のサイトに行ってみました。 わかりやすいかどうかはともかくとして、 たぶん以下の章をみればいいのかと思うのですが。。。 ※まちがってたらご指摘ください。 引用-------------------------------------------- JSP.1.6 Quoting and Escape Conventions ------------------------------------------------ この章のサンプルでは、以下のように "<%= "hi!" %>" がillegalだと 書いてあって。。。う〜ん、混乱してきた。 引用-------------------------------------------- Examples The following line shows an illegal attribute values. <mytags:tag value="<%= "hi!" %>" /> ------------------------------------------------ ちょっと、細かいところまで首を突っ込みすぎですね。私。。。 | ||||||||
|
投稿日時: 2003-05-12 11:57
それはおそらくExpression Languageという、タグライブラリ
で使用する新しい表現方法についての説明だと思います。 仕様書中では、"Expressions"の項目を参照してください。 確かに見た目上 page="<%="./funcModule/" + fileName[i]%>" は気持ち悪いですよね。 page属性にとっての""と、<%=%>にとっての""は 意味が違うことは確かですね。 page属性としては、結果的に生成された文字列を もらうだけなので、<%=から%>までのことは関知しない というイメージでしょうか。 まあ、私も厳密に理論的バックグラウンドがあって 言ってるわけじゃないので、やはり仕様書もしくは 市販のJSP本にあたることをオススメします。 | ||||||||
|
投稿日時: 2003-05-14 10:38
amnakyさんありがとうございます!
>page属性にとっての""と、<%=%>にとっての""は >意味が違うことは確かですね。 細部までつっこんで質問してしまいました。 なるほど、意味が違うってことだとすっごい自分の中で理屈がとおります。 どう違うのかは、また地道に探し出しておきます。 先述の仕様の"Expressions"の項では、 「とにかくexpression部分はStringで書け。」のような感じで、amnakyさんの言われる 意味の違いってのは良くわかりませんでした。。 引用――――――――――――――――――――――――――――――――――――――― An expression element in a JSP page is a scripting language expression that is evaluated and the result is coerced to a String. The result is subsequently emitted into the current out JspWriter object. ――――――――――――――――――――――――――――――――――――――――― >やはり仕様書もしくは >市販のJSP本にあたることをオススメします。 ご指摘のとおり、なんらかの本などをあたってみます。 ほんと、「自分で調べてからもの申せ」ですよね。^^; いろいろ、ご丁寧にありがとうございました! | ||||||||
