在Liferay的代码中有一些关键类,在这里加入断点或者日志可以看到你的代码到底在做什么。从页面请求到最终一个portlet被渲染的过程:
1 初始请求从浏览器来到portal server,com.liferay.portal.servlet.MainServlet的servcie()方法处理请求,很多Liferay的对象例如user都在这里创建并加入到request中
2 在类com.liferay.portal.events.ServicePreAction的方法servicePre()中创佳了ThemeDisplay对象。
3. theme基础代码会调用类com.liferay.taglib.util.ThemeUtil来渲染theme。它会调用includeJSP()来包含JSP渲染的内容,或者includeVM()来包含Velocity渲染的内容。
4. 如果使用基于Velocity的theme,请求会经过类com.liferay.portal.velocity.VelocityVariables的方法insertVariables()的处理。在这个方法中,被theme系统使用的Velocity变量被加入到Velocity内容中。
5.在Tomcat的webapps/ROOT/html/portal路径的render_portlet.jsp负责渲染每个portlet。在这个文件中你可以看到在你自己的portlet执行之前之后Liferay做了什么。
1 初始请求从浏览器来到portal server,com.liferay.portal.servlet.MainServlet的servcie()方法处理请求,很多Liferay的对象例如user都在这里创建并加入到request中
2 在类com.liferay.portal.events.ServicePreAction的方法servicePre()中创佳了ThemeDisplay对象。
3. theme基础代码会调用类com.liferay.taglib.util.ThemeUtil来渲染theme。它会调用includeJSP()来包含JSP渲染的内容,或者includeVM()来包含Velocity渲染的内容。
4. 如果使用基于Velocity的theme,请求会经过类com.liferay.portal.velocity.VelocityVariables的方法insertVariables()的处理。在这个方法中,被theme系统使用的Velocity变量被加入到Velocity内容中。
5.在Tomcat的webapps/ROOT/html/portal路径的render_portlet.jsp负责渲染每个portlet。在这个文件中你可以看到在你自己的portlet执行之前之后Liferay做了什么。