Tôi đang sử dụng PrimeFaces 5.Phạm vi khung nhìn của khung thoại PrimeFaces có bị phá vỡ so với hộp thoại p: không?
Tôi muốn mở hộp thoại khi nhấn nút.
<p:commandButton value="add upload" actionListener="#{theForm.openUpload}" >
public void openUpload() {
this.item = new Item();
RequestContext.getCurrentInstance().openDialog("uploadForm");
}
Sẽ có một nút lưu trong hộp thoại để lưu các đầu vào.
<h:commandButton value="#{text['button.add']}" id="add" styleClass="btn btn-default" actionListener="#{theForm.confirmAdd}"/>
public void confirmAdd() {
RequestContext.getCurrentInstance().closeDialog("uploadForm");
}
bean được quản lý của tôi là @ViewScoped
. Nút lệnh có phá vỡ phạm vi xem nếu hộp thoại nằm trong một tệp ngoài được thực hiện bởi khung thoại PrimeFaces không? Bất cứ khi nào tôi nhấp vào nút "thêm tải lên", phương thức @PostConstruct
được gọi lại giống như phạm vi bị mất.
Phần nhận xét của official blog cho biết nó sẽ không phá vỡ phạm vi xem, nhưng here the forum a core developer nói openDialog()
tạo chế độ xem mới, do đó, nó sẽ phá vỡ phạm vi xem.
Ai đó có thể xác nhận điều này không?
Bạn sử dụng phiên bản JSF nào? 'Javax.faces.bean.ViewScoped' được biết là phá vỡ trong một số trường hợp. (Xem thêm http://balusc.blogspot.de/2010/06/benefits-and-pitfalls-of-viewscoped.html) Nếu bạn đang sử dụng CDI, bạn nên chuyển sang 'javax.faces.view.ViewScoped' - Điều này đang hoạt động như mong đợi. – dognose