kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
          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-type
          6.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.1

          form的默認(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下午

           

          posted on 2005-03-09 00:17 笨笨 閱讀(670) 評(píng)論(0)  編輯  收藏 所屬分類: ALLAppFuse
          主站蜘蛛池模板: 金昌市| 五河县| 淅川县| 太白县| 枣庄市| 壶关县| 高密市| 仪陇县| 汶川县| 北海市| 来凤县| 荣昌县| 沧州市| 陵水| 阳原县| 甘孜| 华蓥市| 内黄县| 女性| 陇南市| 民权县| 读书| 丹棱县| 五寨县| 筠连县| 昆山市| 思南县| 丰镇市| 长沙县| 临夏县| 四子王旗| 綦江县| 新和县| 河西区| 海安县| 白城市| 龙泉市| 大石桥市| 乐安县| 民权县| 成武县|