技术开发 频道

关于使用WCM API获取内容的小经验

【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,那么中文就不会遇到这种问题了。

0
相关文章