http://rabbit8.blogchina.com/blog/article_144619.789350.html 關(guān)于DisplayTag:新的郁悶開(kāi)始了…… |
2005年 02月02日 |
DisplayTag的默認(rèn)的URL為上一次的URL,而上一次的URL中包含被編碼后的漢字,所以,將編碼后的漢字再次進(jìn)行編碼,肯定查不到結(jié)果,所以也不能翻頁(yè),看來(lái)要修改DisplayTag了,本來(lái)想年后再弄的......
DisplayTag的默認(rèn)的URL默認(rèn)為上一次的URL,如果上一次的URL包含中文的話,則會(huì)被進(jìn)行URLEncode,所以在翻頁(yè)的時(shí)候,又會(huì)把進(jìn)行了URLEncode后的數(shù)據(jù)再次進(jìn)行URLEncode,所以翻頁(yè)就沒(méi)有數(shù)據(jù),因?yàn)檫@部分功能被封裝在DisplayTag中,于是,我又開(kāi)始郁悶了...... 如漢字"專業(yè)"被編碼后為"%D7%A8%D2%B5",于是DisplayTag就將這個(gè)編碼作為連接的關(guān)鍵字,如果再次提交,則這個(gè)編碼還會(huì)被編碼,所以查詢結(jié)果一定就不對(duì)了!!! 下面的內(nèi)容是我分析這個(gè)問(wèn)題的由來(lái): --------------------------------------------------------------------------------------------------- 剛才到網(wǎng)上查找了些資料,找到HTML4.0.1的規(guī)范中關(guān)于URLEncode的部分,我把我關(guān)心的內(nèi)容翻譯了一下: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 其中相關(guān)內(nèi)容如下在17.13.3 Processing form data: 提交時(shí),HTML的規(guī)范處理如下: 1.標(biāo)識(shí)successful controls (概念可以在上文中查找)。 2.構(gòu)建form的數(shù)據(jù)集。 3.根據(jù)form的enctype的設(shè)置,對(duì)form的數(shù)據(jù)集進(jìn)行Encode。 4.提交已經(jīng)Encode的數(shù)據(jù)集。
HTML規(guī)范中指出Content type和Languange code是不區(qū)分大小寫的。 詳情參見(jiàn):http://www.w3.org/TR/html401/types.html#type-content-type "&" 表示"&"。關(guān)于charset的詳細(xì)內(nèi)容見(jiàn):http://www.w3.org/TR/html401/charset.html#entities
有一個(gè)小發(fā)現(xiàn):Frame中的target的值的列表原來(lái)是在HTML的規(guī)范中制定的,呵呵: http://www.w3.org/TR/html401/types.html#type-content-type6.16 Frame target names下面的target的名字是規(guī)范中聲明的有特殊含義的保留字。 _blank 在一個(gè)沒(méi)有指定名字的新窗口中打開(kāi)頁(yè)面。(new, unnamed window) _self 在同一個(gè)窗口中打開(kāi)。(load the document in the same frame as the element that refers to this target) _parent 在當(dāng)前窗口的父窗口中打開(kāi),如果當(dāng)前窗口沒(méi)有父窗口,那么就等同于_self _top 在最開(kāi)始的窗口中轉(zhuǎn)載,如果當(dāng)前框架沒(méi)有parent,那就等于_self。
關(guān)鍵部分在這里了:http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1form的默認(rèn)的content type是:application/x-www-form-urlencoded form提交content type的數(shù)據(jù)必須用下列規(guī)則進(jìn)行編碼(encode): 空格被封裝為"+",其他的保留字封裝后的值在 [RFC1738]中可以查到。RF1738的規(guī)范:http://www.ietf.org/rfc/rfc1738.txt。 其他的非英文字符和非數(shù)字的字符都被編碼為"%HH", HH是將字符的ASCII的編碼轉(zhuǎn)換為16進(jìn)制后的字符。行尾是"CR LF" (如:`%0D%0A')。 控件的名字和數(shù)值之間使用"="分隔,多個(gè)控件之間用"&"分隔。 ------------------------------------------------------------------------------------------------------------------ 兔八哥 2005-2-2下午
|
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||