Jsp Liferay renderURL加载相同的页面
我开发了一个portlet,通过另一个portlet view.jsp中的Jsp Liferay renderURL加载相同的页面,jsp,tomcat,websphere,liferay,struts,Jsp,Tomcat,Websphere,Liferay,Struts,我开发了一个portlet,通过另一个portlet view.jsp中的在条件下调用它 解释:PortletA::view.jsp会检查当前应用的主题,然后加载PortletB或继续处理自己的代码 它是OOTB MessageBoards portlet的移动版本,在我用于开发的Tomcat7.0.27上运行 问题:live server是Websphere,部署过程结束后,使用renderURL taglib创建的所有链接都不起作用,例如,单击后,相同的页面只会重新加载,而不会发生任何事情。
在条件下调用它
解释:PortletA::view.jsp会检查当前应用的主题,然后加载PortletB或继续处理自己的代码
它是OOTB MessageBoards portlet的移动版本,在我用于开发的Tomcat7.0.27上运行
问题:live server是Websphere,部署过程结束后,使用renderURL taglib创建的所有链接都不起作用,例如,单击后,相同的页面只会重新加载,而不会发生任何事情。标签如下所示:
<portlet:renderURL var="editURL">
<portlet:param name="struts_action" value="/mobile_message_boards/edit_message" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="messageId" value="<%= String.valueOf(message.getMessageId()) %>" />
</portlet:renderURL>
观察到:
发布的代码片段确实在Tomcat上生成了一个工作链接,但在Websphere上没有。当我使用
而不是
时,它也适用于Websphere,但不是一个干净的实现。
当我将移动版本portlet单独/直接添加到页面中时,renderURL会按照预期再次工作,重定向到适当的页面,但随后我失去了确定应加载哪个portlet的条件。我已经在struts后面的PortletAction中添加了一些跟踪,但是在Websphere上从未调用过它,而在Tomcat上,跟踪显示在日志输出中
我相信这与在Websphere上的portletA中创建/调用portletB的renderURL的一些配置权限有关。对于这个问题,我没有找到任何可行的解决方案
有人知道解决方案或解决方法吗
亲切问候,,
Denis Dik你说的tomcat是指liferay,对吗?为什么在liferay下开发的项目应该在websphere下工作?不干净的实现是什么意思?不干净的实现:StrutsPortletAction有两个阶段。渲染和操作。渲染被认为等同于GET,操作被认为是POST。当动作被调用后,渲染将被调用,而我只需要调用渲染。基本上renderURL和actionURL调用特定StrutsPortletAction类的action和render方法。Tomcat只是Liferay运行的容器。您是指运行在Websphere Portal上的portlet,还是指运行在Websphere AS上的Liferay上的portlet?portlet运行在Websphere Application Server Network Deployment上的Liferay 6.1.20内部。错误尚未解决,但您可以在Liferay论坛上查看这些问题