【IT168 专稿】
Portal中的WCM提供了一个比较强大的内容信息发布功能。特别是6.0,功能上作了很大改进。
但是,有时候WCM提供的现成功能或者界面,可能满足不了客户的需求,这时候需要进行二次开发,为此,WCM提供了Java API接口。
最近在几个WCM项目中都遇到了要获取发布内容的需求,总结了一点点经验,希望对大家有所帮助。
WCM给的相关示例代码如下:
<%
Workspace workspace = WCM_API.getRepository().getWorkspace("wpsadmin", "password";
HashMap map = new HashMap();
RenderingContext context = workspace.createRenderingContext(request, response, map);
context.setRenderedContent("/Intranet/Home/news/";
out.write(workspace.render(context));
%>
以上代码对于英文没有任何问题,但是对于中文,如果WCM配置还是使用确省的UTF-8,则需要对上述代码做一点修改:
1. 加入代码
<%@ page contentType="text/html;charset=UTF-8"%>
2. 对于中文名称的内容定位,可以使用两种方法获取它的完整路径名:
1)使用<WAS-ROOT>\java\bin\native2ascii.exe获取中文对应的ascii码,例如:
context.setRenderedContent("/Intranet/Home/\u6d4b\u8bd5\u6d4b\u8bd5";
2)在WCM中使用御览方式可以获取portal定位该内容的完整路径
注意:如果路径只定位到站点区域,例如:/Intranet/Home/,则获取的内容为该站点区域下的确省内容,此时注意路径最后有一个'/'字符;如果定位到某篇文章,则最后没有'/'字符
3. 程序保存的时候,注意存成UTF-8的编码类型,例如可以使用"记事本"进行保存
另外,在实施WCM项目时,建议在没有任何内容之前,就将WCM的编码设置成GB2312,那么中文就不会遇到这种问题了。