Mojarra 2.1.6 구현을 사용하여 JSF 응용 프로그램을 빌드하고 있습니다. 내 응용 프로그램 화면은 @ViewScoped
이고 각 bean은 하나의보기에서 다른보기로 파기됩니다. 또한 탐색 모음이나 탐색 경로의 일종을 갖고 싶기 때문에 사용자는 페이지를 사용하여 다시 사용할 수 있습니다. 나는이 방법으로, Primefaces p:button
사용하고 있음을 달성하기ViewScoped bean의 상태 저장
<h:panelGroup
rendered="#{!navigationManager._DisableNavigationButtons}">
<p:toolbar>
<p:toolbarGroup>
<ui:repeat value="#{navigationManagerSystem._Navegables}"
var="item">
<p:button value="#{item._Title}" outcome="#{item._IncludePath}">
<f:param name="params" value="#{item._NavigationParams}" />
</p:button>
</ui:repeat>
<p:button disabled="true"
value="#{navigationManagerSystem._Navegable._Title}" />
</p:toolbarGroup>
</p:toolbar>
이 코드에서 볼 수 있듯이, 그것은 기본적으로 버튼이있는 툴바의이 버튼은 이전 URL의 저장, 그래서 때 사용자 그 중 하나를 클릭하면 돌아갈 수 있습니다.
하지만, 내 문제는 내가보기 매개 변수를 받고있는 일부 페이지가 나는 일반적인 뭔가하고 싶은, 그래서 좋은 생각이 java.util.List
에 매개 변수를 저장하는 것입니다 위해 (navigationManagerSystem 것은 @SessionScoped
콩입니다) 사용자가 단추를 클릭하여 돌아가서 이전 빈 상태를 달성 할 때 복구 할 수 있습니다.
그러나 위의 예제는 작동하지 않는 경우는, 심지어 대상 페이지가
<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="user" name="user"
value="#{navegableUserData._ParamUser}" required="true"
requiredMessage="User is required" />
<f:viewParam id="params" name="params"
value="#{navegableUserData._NavigationParams}" />
<f:event type="preRenderView"
listener="#{navegableUserData.initialize}" />
</f:metadata>
<h:message for="user" />
</ui:define>
<ui:define name="general_content">
<p:outputPanel autoUpdate="false" id="Datos_Loged" name="Datos_Loged"
layout="block">
<h:form id="SystemUserForm">
<ui:include
src="/system/manage_user/content/edit_user/system_user_data/system_user.xhtml" />
</h:form>
</p:outputPanel>
</ui:define>
_NavigationParams
세터가 호출되지 않는 그런 식으로 작성하고 난 변환 예외가있다. JSF에서이 작업을 수행하는 더 좋은 방법이 있는지 모르겠다. 어쩌면 @ViewScoped
bean을 유지할 것이다.
귀하의 버튼이 표시됩니까?, _NavigationParams가 문자열입니까? p : button에서 ajax = false를 시도 했습니까? –
'_NavigationParams'는 Serializable NavigationParam 클래스의리스트입니다. 네비게이션 매개 변수가없는 페이지에 대한 제 버튼이 제대로 작동하고 있습니다. URL로 이동하면 콩이 제대로 초기화됩니다. 'p : commandButton'이 내가 아는 한'p : button'은 절대 아약스 모드로 가지 않습니다. –