siteMesh的一個(gè)中文bug

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

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

          沒有考慮中文的情況。解決方案是將會(huì)出現(xiàn)的中文情況考慮進(jìn)去。

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

          這個(gè)解決方案是從網(wǎng)上搜索出來的,我想應(yīng)該還有更好的解決方法。

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          我參與的團(tuán)隊(duì)

          隨筆分類(2)

          隨筆檔案(3)

          收藏夾(3)

          JAVA技術(shù)論壇

          我的好友

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 淮北市| 柘城县| 永年县| 遂川县| 澄迈县| 婺源县| 治多县| 新和县| 太谷县| 郯城县| 探索| 泸西县| 财经| 天祝| 同江市| 嫩江县| 永嘉县| 宜都市| 义马市| 漳州市| 上蔡县| 五大连池市| 中江县| 阳泉市| 灵台县| 百色市| 松阳县| 威宁| 安岳县| 建始县| 贺兰县| 广丰县| 平武县| 娱乐| 本溪市| 临朐县| 通江县| 盐源县| 棋牌| 彩票| 海兴县|