将sakai中的iframe替换为jQuery请求

Sakai的portal/portlets模型中,portlets展现是用iframe做的。但我不喜欢iframe,所以换为jQuery的异步请求。
那么….
1、portlets在哪个模块渲染?
在sakai-portal-render-pack\WEB-INF\componets.xml中会注入几个render,:
        <property name="renderServices">
            <list>
                <ref local="portletRenderService"/>
                <ref local="fragmentRenderService"/>
                <ref local="iframeRenderService"/>
            </list>
        </property>
然后,iframeRenderService实现在portal/portal-render-impl/impl/src/java/org/sakaiproject/portal/render/iframe/IFrameToolRenderService.java中
修改其render方法:
String toolDivId = Web.escapeJavascript("Main" + configuration.getId());
sb.append("<div id=\"").append(toolDivId).append("\">");
sb.append("<script type=\"text/javascript\">\n")
.append("$(\"#")
.append(toolDivId).append("\").load(\"").append(toolUrl).append("\");\n")
.append("</script></div>");
在page的渲染模块,会加入jQurey的路径,所以这里不用考虑。
2、强调portal/portlets模型对于sakai比较重要。建议从了解通用的模型入手,再看sakai 的tool处理。这里只是一个临时的代码,后面还得加入portlets的几种状态处理。

你可能感兴趣的:(java,jquery,Web,xml)