Portal中文問(wèn)題解決
本文從臺(tái)灣BEA網(wǎng)站相關(guān)文章改編而來(lái),加入了筆者的一些注釋和工具。
1.1 如何構(gòu)建以 GBK 編碼為基礎(chǔ)的 Applications 項(xiàng)目 在 Workshop 中,所有源文件 (JSP、PageFlow、.portal…) 的預(yù)設(shè)編碼皆為 UTF-8,如果您想要用 GBK 來(lái)作為 PageFlow 或 JSP 的編碼 (例如有以前寫(xiě)的GBK或者GB2312 編碼的 JSP 想整合進(jìn)來(lái)),請(qǐng)按照下列步驟做調(diào)整。 如要建立以 GBK 為預(yù)設(shè)編碼的 JSP 或 PageFlow,需作以下調(diào)整:
- 修改 JSP 第一行的 ContentType 宣告,將 UTF-8 改為 GBK/GB2312,即:
<%@ page language="java" contentType="text/html;charset=GBK"%>
- 編輯 weblogic.xml中,關(guān)于 encoding 這項(xiàng)的設(shè)定,將 UTF-8 改為 GBK,即:
<jsp-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </jsp-param>
- 變更 Web 應(yīng)用程序字符編碼
在 Workshop IDE 中,從 Tools 選單 -> Application Properties -> Encoding 選項(xiàng)中,將 Web App Character Encoding 底下的 "Use default (UTF-8)" 一項(xiàng),移除勾選,并在 "Encoding" 字段后鍵入 GBK或gb2312。
- 將 charset-params 項(xiàng)目加到 weblogic.xml 中:
<charset-params> <input-charset> <resource-path>/*</resource-path> <java-charset-name>GBK</java-charset-name> </input-charset> </charset-params>
- 將以下項(xiàng)目從 web.xml 中移除或批注掉,或者將param-value修改為GBK
<context-param> <param-name>weblogic.httpd.inputCharset./*</param-name> <param-value>UTF-8</param-value> </context-param>
- 將 WLP8.1 portal 模板(即 .portal 文件) 的 ContentType 編碼加以修改 (預(yù)設(shè)編碼為 UTF-8) 如下:
<portal:directive.page contentType="text/html;charset=GBK"/>
變更方法 (由于 .portal 檔的本質(zhì)為 XML,建議使用 Workshop 來(lái)編輯該檔案,比較安全) 在 Workshop IDE 中,從 Tools 選單中選擇 "Application Properties" 選擇 "Portal" 的選項(xiàng),然后勾選 "Open as XML Option" 選項(xiàng) 接著便可以以右鍵點(diǎn)選您的 .portal 檔案,并選擇 "Open as XML" 指令 按照以上的說(shuō)明,編輯 .portal 文件的 XML 原始碼,修改編碼部分的宣告 關(guān)閉當(dāng)前文件,再打開(kāi).portal文件時(shí),又是圖形化界面
執(zhí)行到這一步時(shí),已經(jīng)能夠保證運(yùn)行.portal文件的編碼是簡(jiǎn)體中文了。
- 使用 WebLogic Administration Portal,以 GBK 型建立之 Portal 為基礎(chǔ)來(lái)建立桌面時(shí),必須更新數(shù)據(jù)庫(kù)表數(shù)據(jù)。
更新對(duì)象表:L10N_LOCALE 更新對(duì)象列:ENCODING (標(biāo)準(zhǔn)設(shè)置是 UTF-8)
變更方法和執(zhí)行步驟如下。 部署 Portal 應(yīng)用程序。 啟動(dòng) WebLogic Administration Portal 并登入。 在數(shù)據(jù)庫(kù)的 L10N_LOCALE 表中,尋找LANGUAGE =’zh’ 的 記錄,然后將ENCODING 列從 UTF-8 修改為 GBK。 使用 WebLogic Administration Portal 來(lái)建立新的桌面。以后建立的所有桌面都是 GBK 型桌面。
補(bǔ)充 1. 表更新時(shí)機(jī) 在 L10N_LOCALE 表中,必須變更下述兩列的 ENCODING 列:分別是 LANGUAGE 值為 zh 且 COUNTRY 值為 CN 的行,以及 LANGUAGE 值為 zh 的行。LANGUAGE 值為 zh 且 COUNTRY 值為 CN 的行,會(huì)在部署 Portal 應(yīng)用程序時(shí)自動(dòng)建立,而 LANGUAGE 值為 zh 的行,則會(huì)因?yàn)?Portal 應(yīng)用程序所建立的內(nèi)容,而未在部署時(shí)登錄。 在這種情況下,此列會(huì)在登入 WebLogic Administration Portal 時(shí)自動(dòng)建立。因此,在登入 WebLogic Administration Portal 之后再變更表較為適當(dāng)。
范例:更新 Oracle9i 的列 SQL> UPDATE L10N_LOCALE SET ENCODING=‘GBK‘ WHERE LANGUAGE=‘zh‘; 兩列已更新。 SQL> commit;
范例:更新 PointBase 的列 由于缺省時(shí),Portal帶有的數(shù)據(jù)庫(kù)是Pointbase,所以,進(jìn)入Domain目錄,運(yùn)行startPointBaseConsole.cmd或者startPointBaseConsole.sh,然后確定Concole里面URL是jdbc:pointbase:server://10.130.2.150:9093/workshop,輸入用戶名稱和密碼都是weblogic/weblogic,在Enter SQL Commands輸入框中輸入 UPDATE L10N_LOCALE SET ENCODING=‘GBK‘ WHERE LANGUAGE=‘zh‘; 點(diǎn)擊Toolbar上的Execute All ,執(zhí)行完畢。
執(zhí)行完該步驟時(shí),才能保證streaming portal運(yùn)行支持簡(jiǎn)體中文。
1.2 在 Portal 應(yīng)用程序中添加版面、外殼以及觀感的簡(jiǎn)體中文登錄信息的方法 如果在 Portal 管理畫(huà)面中看到以下的訊息: 尚未設(shè)置 [zh_CN] 語(yǔ)言地區(qū)的標(biāo)題。
這是因?yàn)榘婷?、外殼以及觀感等 Portal 樣板的簡(jiǎn)體中文信息尚未登錄所致。登錄信息的默認(rèn)值為 "en",如果要顯示其它語(yǔ)言地區(qū),必須執(zhí)行下列步驟。
通過(guò)Portal 管理工具的修正方式: 啟動(dòng) portalAdmin (將瀏覽器的語(yǔ)言設(shè)定為 ‘en‘) 選擇 PortalResources-Layout 為樹(shù)狀目錄中顯示的每個(gè)項(xiàng)目選擇 ‘添加語(yǔ)言地區(qū)‘。(設(shè)定想要添加的語(yǔ)言 (例如,‘zh_CN‘),然后說(shuō)明標(biāo)題。) 回復(fù)瀏覽器初始的語(yǔ)言設(shè)定,然后重新顯示。 透過(guò)這些步驟,可以將版面、外殼以及觀感的登錄信息儲(chǔ)存在數(shù)據(jù)庫(kù)中 (表名稱:L10N_RESOURCE)。
通過(guò)Workshop 的修正方式: 在 Workshop 中建立的 Portal Web project 的 framework\markup\ 數(shù)據(jù)夾中,有 fourcolumn.layout、text.laf 等樣板檔案。如果事先將這些檔案中的語(yǔ)言地區(qū)值設(shè)定為 "zh",則上述訊息就不會(huì)顯示出來(lái)。所有樣版的原始檔都來(lái)自 %WL_HOME%\workshop\templates\portal-project.zip 中的 portal.war。
通過(guò)命令方式: 解開(kāi)壓縮包,拷貝com目錄和changelocale.cmd到domain目錄下 打開(kāi)changelocale.cmd,查看URL,username和password,確保與當(dāng)前Domain相符。 運(yùn)行setdomainenv.cmd 運(yùn)行changelocale.cmd 由于直接操作數(shù)據(jù)庫(kù),所以該命令適合Weblogic Portal8.13(不能保證其他版本數(shù)據(jù)庫(kù)表結(jié)構(gòu)不會(huì)發(fā)生變化),主要是為各個(gè)資源建立zh_CN相關(guān)的數(shù)據(jù)庫(kù)表記錄,注意的是,這樣修改不會(huì)馬上在管理工具中生效,需要等待一段時(shí)間。
|