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