是否可以按以下方式使用 JSF (PrimeFaces)页面? :
换句话说,步骤 2 的 PrimeFaces 页面仅涉及调用backing-bean业务方法的副作用,永远不会显示。用户点击步骤 1 的外部应用程序上的链接后,会出现在步骤 3 的页面中。
答案 0 :(得分:3)
使用<f:viewParam>
将GET参数设置为bean属性,并使用<f:event>
执行bean操作并使用NavigationHandler
以编程方式执行导航。
查看:
<f:metadata>
<f:viewParam name="foo" value="#{bean.foo}" />
<f:viewParam name="bar" value="#{bean.bar}" />
<f:event type="preRenderView" listener="#{bean.action}" />
</f:metadata>
豆:
public void action() {
// ...
FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler = context.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(context, null, "outcome");
}
请注意,根据具体的功能要求,JSF可能不一定是正确的工具。我会调查您是否为此目的更好地使用servlet filter甚至普通servlet。