|
|
作者:刘群策(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相关的数据库表记录,注意的是,这样修改不会马上在管理工具中生效,需要等待一段时间。