我正在开发使用JSF 2和prettyfaces一个Web应用程序。 我批注我的一个@ViewScoped
豆漂亮的注解。 这是我有:
@ManagedBean
@ViewScoped
@URLMapping(parentId = "app-list", id = "app-view", pattern = "/detail/#{appId}",
viewId = "/system/manage_app/content/app_detail/app_detail.xhtml")
public class NavegableAppView extends SystemNavegable {
/**
基本上,显示它安装在我的系统应用程序的细节。 这个bean可以通过两种方式来实例化,通过#{appId}
PARAM,这表明我要加载, 或不在PARAM,在这种情况下,豆将从恢复此标识的应用程序的ID @SessionScoped
豆。
这就是页面如何/system/manage_app/content/app_detail/app_detail.xhtml
的管理参数:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui"
template="/templates/general_template.xhtml">
<ui:define name="metadata">
<f:metadata>
<f:viewParam id="appId" name="appId"
value="#{navegableAppView._ParamApp}" required="false" />
<f:event type="preRenderView"
listener="#{navegableAppView.initialize}" />
</f:metadata>
</ui:define>
<ui:define name="general_content">
<p:panel>
<!--More stuff-->
这里的问题是我想NavegableAppView
豆被创建,有或没有PARAM。 我曾尝试这样<p:button value="prueba" outcome="pretty:app-view" />
它的工作原理,但限制我做无非成果 ,也<p:commandButton value="prueba2" action="pretty:app-view" ajax="false" />
这是相当于调用的操作方法,并返回导航的情况下( 这是我真正想要什么 )。
首先选择正确创建bean并加载从会话中值。 第二种情况,是给我这个错误:
HTTP 500 - PrettyFaces: Exception occurred while building URL
for MappingId < app-view >, Required value < #{appId} > was null
所以我的目标bean是没有得到构造。 我曾尝试手动添加参数导航案例: return pretty:app-view?appId=1
和它的作品,但我想目标bean从会议本身的恢复。 我一定要叫重定向或一样,在我的操作方法的东西吗?
集中你的想法。