パスワードを忘れた? アカウント作成
451894 journal

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に書くか。。。(^_^;)
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...