siteMesh的一個中文bug

          ?????? 經前同事介紹,前幾天一直在試用siteMesh,在試用過程中發現一些不想被裝飾的頁面出現頁面顯示不全的問題。頁面上出現一小段HTML標簽。提示異常為java.lang.IllegalStateException 大致意思是試圖寫多少多少字節卻只寫入了多少多少字節。非常郁悶。看了源代碼。發現應該是com.opensymphony.module.sitemesh.filter.PageFilter包里的

          1?response.setContentLength(page.getContentLength());?

          沒有考慮中文的情況。解決方案是將會出現的中文情況考慮進去。

          1?int?originalLength?=?page.getContentLength();//原來的長度
          2?int?bodyCNLenght?=?page.getBody().getBytes().length-page.getBody().length();//內容處理中文長度
          3?int?titleCNLength?=?page.getTitle().getBytes().length-page.getTitle().length();//title處理中文長度
          4?int?javascriptCNOfhead?=?page?instanceof?FastPage???((FastPage)page).getHead().getBytes().length-((FastPage)page).getHead().length()):0?;//head的長度,因為javascript中可能包括中文
          5?
          6?response.setContentLength(originalLength+bodyCNLenght+titleCNLength+javascriptCNOfhead);

          這個解決方案是從網上搜索出來的,我想應該還有更好的解決方法。

          posted on 2006-07-06 23:50 JavaVM 閱讀(1168) 評論(0)  編輯  收藏 所屬分類: WebWork & Struts2


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(1)

          我參與的團隊

          隨筆分類(2)

          隨筆檔案(3)

          收藏夾(3)

          JAVA技術論壇

          我的好友

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乾安县| 阳高县| 攀枝花市| 秭归县| 赤壁市| 松原市| 台北市| 漯河市| 深水埗区| 黎平县| 诏安县| 旺苍县| 交城县| 肇源县| 永州市| 通山县| 鄂州市| 阳新县| 广丰县| 平度市| 屏南县| 石屏县| 吴川市| 云浮市| 上虞市| 兴和县| 德江县| 奉新县| 新晃| 永福县| 沿河| 洛阳市| 留坝县| 宁南县| 石景山区| 淮滨县| 河池市| 吴桥县| 肇源县| 堆龙德庆县| 平顶山市|