我对 doView() 方法的访问有疑问。我使用 Liferay 6.3 作为 CMS、ICEFACES 3.3.0 和 tomcat 7 编写了一个 portlet。我使用了liferay-faces-bridge以便在 Liferay 中使用 Icefaces 框架。出于这个原因,我以这种方式设置了 portlet.xml:
<portlet>
<portlet-name>FinalTest</portlet-name>
<display-name>FinalTest</display-name>
<portlet-class>org.portletfaces.bridge.GenericFacesPortlet</portlet-class>
<init-param>
<name>javax.portlet.faces.defaultViewId.view</name>
<value>/index.xhtml</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>FinalENELTest</title>
<short-title>FinalENELTest</short-title>
<keywords>FinalENELTest</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
我也有一个这样的 ManagedBean(用于业务逻辑):
@ManagedBean(name="backingBean")
@SessionScoped
public class BackingBeanImpl extends GenericPortlet{
....
@Override
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
// TODO Auto-generated method stub
System.out.println("I'M HERE");
super.doView(request, response);
}
}
问题是当portlet 启动时doView() 方法没有被调用。也许这是一个桥梁问题。我不知道。
我希望有一个人可以帮助我。
谢谢