2
jsf 양식과 양식 데이터에 대한 보고서를 인쇄 할 단추가 있다고 가정 해보십시오. 이 버튼은 새 페이지 (대상 = 빈)의 데이터를 열 필요하지만 시간 : 난 그냥 열어 보고서 페이지 전에 데이터를 저장하기 위해 필요에 따라 버튼을는 적합하지 않습니다. 있는 명령 보고서 페이지로 저장 작업을 만든다 다음 리디렉션 : 그래서, 시간 사용하는 엔티티가 완벽하게 저장됩니다JSF 2.0 : 리디렉션 (대상 = 비어 있음) 후보기를 저장하는 방법
<h:commandLink styleClass="reportButton" action="#{polisBean.doReportPrint}"
target="_blank" id="reportListLink">
Print report
</h:commandLink>
@ViewScoped
@Named
public class PolisBean
...
public Object doReportPrint() {
if (canEdit() && this.submit() == null) {
return null;
}
return "printReport";
}
<navigation-case>
<from-outcome>printReport</from-outcome>
<to-view-id>/polises/reportList.xhtml</to-view-id>
<redirect include-view-params="true">
<view-param>
<name>id</name>
<value>#{polis.id}</value>
</view-param>
</redirect>
</navigation-case>
을하고 새 페이지는 보고서에 열려 있습니다. 좋은. 그러나 초기 폼 페이지로 돌아가서 다시 저장하려고하면 뷰가 만료되고 새로운 것으로 빌드됩니다 (포스트 백 요청이 아니기 때문에 이것은 JSF에 대한 완전히 새로운 요청입니다. 페이지!). 두 번째 페이지를 열 때 리디렉션이 완료되었지만,이
내가 시도 ... 모두보기 빈 데이터 범위 잃어버린 방지하지 않습니다 CDI에서 conversationScope을 실행하는 동안,하지만 "ContextNotActiveException 던졌습니다 : 용접 001,303을 내가 초기 페이지로 다시 켤 때 범위 유형에 대한 활성화 컨텍스트는사람이 문제를 해결했습니다 ... "예외를 javax.enterprise.context.ConversationScoped하지? 리디렉션 (새 페이지로)을 사용하여 양식 제출을 수행 할 수 있지만 초기 데이터가 손실되지 않도록하려면 어떻게해야합니까?