Liferay中左右布局的示例
在博客中的留言中有朋友问在Liferay中怎么实现,左边是导航,右边是具体的portlet内容,点击左边的导航右边的内容变化怎么实现,我理了一下大概有以下几种情况和不同的实现方式。
- 使用iframe,右边刷新的内容为portlet页面
- 使用iframe,右边刷新的为普通的JSP页面,而非portlet页面
这两种的实现方式是一样的,无论是portlet页面或者是JSP页面,都是将iframe的src的属性使用JS动态的设置为待刷新的页页的URL。
如果为portlet时,portlet页面URL可以如下定义示例:
<portlet:actionURL var="config" name="save" windowState="<%=LiferayWindowState.POP_UP.toString()%>"> <portlet:param name="jspPage" value="/html/NewsGatherManager/configGather.jsp"/> </portlet:actionURL>
则设置iframe的URL的方法如下(使用JQuery):$('#iframeid').attr('src',url);,其中的url为config
如果是IFrame的为普通的jsp页面,则url=${basepath}/html/NewsGatherManager/configGather.jsp,其中的basepath=request.getContextPath();
- 使用ajax,右边刷新的为普通的JSP页面或html片断
使用ajax的时候,为点击左边导航的时候触发相应的Ajax请求,将返回值的内容填充到相应的元素中。
- 左右两边为两个不同的portlet,左边为导航,右边为具体的显示内容,通过在URL中传递参数来为右边的portlet刷新不同的内容。
点击左边的导航的时候,重新载入本页面,并动态的修改URL的参数内容。
示例代码下载:点击此处
就是liferay portlet actionURL标签执行了action方法但是方法执行完之后不跳转到我指定的页面
胡总:使用iframe,右边刷新的内容为portlet页面,那样的话内容portlet页面访问是不是只能是一个了的
没有明白什么意思呀
直接继承GenericPortlet,我该怎么样弄iframe的呢?