kibayasiの日記: 今日のZope
日記 by
kibayasi
redirectの問題が解決
mooyaさんところのTipsで、
<dtml-call "RESPONSE.redirect('aaa_html')">
<dtml-call "RESPONSE.redirect('bbb_html')">
と連続で書くとbbb_htmlが動くと書いてあった。
今までそれに準じて、<dtml-if>が多くなって汚いものになっていたが、
<dtml-return expr="RESPONSE.redirect('index_html')">
のように書けば、それ以降の処理をしないで、実効されることがわかった。
ナイスな収穫。
これで、少しはきれいになるだろう。
ただ、気をつけなければならないのが、
下にあるフォルダからの呼び出しは、フルパス指定じゃないと、URLが気持ち悪くなることだ。
例を挙げると
testと言うフォルダの下に、index_html
testの下に、test2というフォルダがあって、
そのtest2にあるオブジェクトから、index_htmlをredirectすると、
http://localhost:8080/test/test2/index_html
のようになってしまう。
本来は、そんなところになくても、Zopeがそう解釈するのだから、しかたないけれど、
はっきりいって、気持ち悪い。
ということで、
<dtml-return expr="RESPONSE.redirect('/test/index_html')">
のように、フルパスで書くようにする。
まあ、気持ち悪くても動けばいいなら、かまわない。
[追記 17:00頃]
dictionary問題再発
というか、REQUEST.set でdictionaryを作っても、
次のページにもっていけん。。
hiddenのvalueに渡しても、途中できれるし。。。
ダブルクォートでくくると、文字列として認識されてしまう。。
どげんしたらよかっとですかね。。
SESSION渡しなら、スムーズなんだけど。。
いっそのこと、全部SESSIONに書くか。。。(^_^;)
mooyaさんところのTipsで、
<dtml-call "RESPONSE.redirect('aaa_html')">
<dtml-call "RESPONSE.redirect('bbb_html')">
と連続で書くとbbb_htmlが動くと書いてあった。
今までそれに準じて、<dtml-if>が多くなって汚いものになっていたが、
<dtml-return expr="RESPONSE.redirect('index_html')">
のように書けば、それ以降の処理をしないで、実効されることがわかった。
ナイスな収穫。
これで、少しはきれいになるだろう。
ただ、気をつけなければならないのが、
下にあるフォルダからの呼び出しは、フルパス指定じゃないと、URLが気持ち悪くなることだ。
例を挙げると
testと言うフォルダの下に、index_html
testの下に、test2というフォルダがあって、
そのtest2にあるオブジェクトから、index_htmlをredirectすると、
http://localhost:8080/test/test2/index_html
のようになってしまう。
本来は、そんなところになくても、Zopeがそう解釈するのだから、しかたないけれど、
はっきりいって、気持ち悪い。
ということで、
<dtml-return expr="RESPONSE.redirect('/test/index_html')">
のように、フルパスで書くようにする。
まあ、気持ち悪くても動けばいいなら、かまわない。
[追記 17:00頃]
dictionary問題再発
というか、REQUEST.set でdictionaryを作っても、
次のページにもっていけん。。
hiddenのvalueに渡しても、途中できれるし。。。
ダブルクォートでくくると、文字列として認識されてしまう。。
どげんしたらよかっとですかね。。
SESSION渡しなら、スムーズなんだけど。。
いっそのこと、全部SESSIONに書くか。。。(^_^;)
今日のZope More ログイン