我有绝对可行的portlet。它是一个复杂的表格,有许多弹出窗口、惰性表、表格等。它工作正常。并希望允许它自动填充所有字段和结构。我从 url 添加了构造函数分析参数:
RenderRequest renderRequest = (RenderRequest) (FacesContext .getCurrentInstance()
.getExternalContext().getRequestMap().get("javax.portlet.request"));
String applicationIndex = renderRequest.getParameter("caid");
并使用数据或默认构造函数初始化结构。
当我打开任何弹出窗口时,我看到它们没有数据,或者它们的按钮对点击没有反应。这在日志中:
引起:java.lang.ClassCastException:com.liferay.portlet.ResourceRequestImpl 不能转换为 javax.portlet.RenderRequest
它发生在以下行:
RenderRequest renderRequest = (RenderRequest)FacesContext.getCurrentInstance).getExternalContext).getRequestMap).get"java
x.portlet.request"));
它是 bean 构造函数的第一行。
那么问题来了:如何让构造函数在这种情况下正常工作呢?