Yic*_*aoz 7 jsf dialog primefaces view-scope
我正在使用PrimeFaces 5.
我想在按下按钮时打开一个对话框.
<p:commandButton value="add upload" actionListener="#{theForm.openUpload}" >
Run Code Online (Sandbox Code Playgroud)
public void openUpload() {
this.item = new Item();
RequestContext.getCurrentInstance().openDialog("uploadForm");
}
Run Code Online (Sandbox Code Playgroud)
对话框中将有一个保存按钮以保存输入.
<h:commandButton value="#{text['button.add']}" id="add" styleClass="btn btn-default" actionListener="#{theForm.confirmAdd}"/>
Run Code Online (Sandbox Code Playgroud)
public void confirmAdd() {
RequestContext.getCurrentInstance().closeDialog("uploadForm");
}
Run Code Online (Sandbox Code Playgroud)
我的托管bean是@ViewScoped.如果对话框在PrimeFaces对话框架中的外部文件中,命令按钮是否会破坏视图范围?每当我点击"添加上传"按钮时,@PostConstruct就会再次调用该方法,就像范围丢失一样.
在的注释部分官方博客中表示,它不会打破的视图范围内,但这里核心开发者论坛上说,openDialog()创建一个新的观点,因此它打破了看法范围.
有人能证实吗?
PrimeFaces的对话框架基本上显示了<iframe>标签中的另一个视图.我不打算打破视图范围,但是对话框视图将拥有它自己的范围,因为它实际上是一个不同的页面.在不同的情况下这可能是也可能不是.正如PrimeFaces的用户指南所说:
Dialog Framework(DF)用于在运行时动态生成的对话框中打开外部xhtml页面.
dynamic=true.我的建议是默认使用p:dialog.仅在我上一个要点中提到的情况下使用Dialog Framework.
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |