带有 JSF 和 Facelets 的 Liferay
Liferay with JSF and Facelets
在一个项目中,我们将 Liferay 与 JSF 和 Facelets 一起用于视图。
我们只想使用一个带有许多 Facelets 页面和许多支持 bean 的 portlet。
为此,我们考虑在 portlet 之外提供一个菜单栏(现在仅在 portlet 中,在顶部),我们需要从那里根据用户在菜单项上的选择显示适当的页面。
我不确定如何从 Facelet 显示适当的页面,因为每次我尝试它都会显示第一页。
- 菜单栏和要重定向到的页面在同一个 portlet 中
如果菜单栏位于 JSF portlet 中,您只需在 faces-config.xml 文件中定义 JSF 导航规则即可导航到新视图。
例如,考虑 home.xhtml 是主 portlet 视图(默认 portlet 视图)并且 doAction()是 managedBean 中处理菜单点击的方法。
public String doAction() {
return "go_to_page";
}
在脸上-config.xml
<navigation-rule>
<from-view-id>home.xhtml</from-view-id>
<navigation-case>
<from-outcome>go_to_page</from-outcome>
<to-view-id>page.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
- 菜单栏和要重定向到的页面不在同一个 portlet
中
但是如果菜单在另一个 portlet 中并且您不想重定向,则必须使用 IPC(inter portlet communication)来更改 JSF Portlet 的视图。 I wrote this tutorial 可以帮助您在 JSF portlet 之间执行 IPC。
在一个项目中,我们将 Liferay 与 JSF 和 Facelets 一起用于视图。
我们只想使用一个带有许多 Facelets 页面和许多支持 bean 的 portlet。
为此,我们考虑在 portlet 之外提供一个菜单栏(现在仅在 portlet 中,在顶部),我们需要从那里根据用户在菜单项上的选择显示适当的页面。
我不确定如何从 Facelet 显示适当的页面,因为每次我尝试它都会显示第一页。
- 菜单栏和要重定向到的页面在同一个 portlet 中
如果菜单栏位于 JSF portlet 中,您只需在 faces-config.xml 文件中定义 JSF 导航规则即可导航到新视图。
例如,考虑 home.xhtml 是主 portlet 视图(默认 portlet 视图)并且 doAction()是 managedBean 中处理菜单点击的方法。
public String doAction() {
return "go_to_page";
}
在脸上-config.xml
<navigation-rule>
<from-view-id>home.xhtml</from-view-id>
<navigation-case>
<from-outcome>go_to_page</from-outcome>
<to-view-id>page.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
- 菜单栏和要重定向到的页面不在同一个 portlet
中但是如果菜单在另一个 portlet 中并且您不想重定向,则必须使用 IPC(inter portlet communication)来更改 JSF Portlet 的视图。 I wrote this tutorial 可以帮助您在 JSF portlet 之间执行 IPC。