Jsf f:viewParam在ajax调用后丢失
我有这个f:viewParam来设置值并在视图中的backbean中进行搜索:Jsf f:viewParam在ajax调用后丢失,jsf,viewparams,Jsf,Viewparams,我有这个f:viewParam来设置值并在视图中的backbean中进行搜索: <f:metadata> <f:viewParam name="id" value="#{editorBean.id}" required="true" /> <f:event type="preRenderComponent" listener="#{editorBean.search}" /> ... 在浏览器中,我无法展开树的第二级,因为在backi
<f:metadata>
<f:viewParam name="id"
value="#{editorBean.id}"
required="true" />
<f:event type="preRenderComponent"
listener="#{editorBean.search}" />
...
在浏览器中,我无法展开树的第二级,因为在backingbean中,id为null
调试:
如何在所有调用中设置f:viewParam?这是因为默认情况下,
提交到没有查询字符串的URL
要么将bean放入视图范围
@ManagedBean
@ViewScoped
public class EditorBean {
并在回发过程中跳过预渲染视图
public void search(ComponentSystemEvent event) {
if (FacesContext.getCurrentInstance().isPostback()) {
return;
}
// ...
}
只要您与同一视图交互,视图范围的bean就会存在,因此属性不需要一次又一次地初始化
或者使用提供了includeViewParams
属性的属性在表单操作URL中包含视图参数:
另见:
public void search(ComponentSystemEvent event) {
if (FacesContext.getCurrentInstance().isPostback()) {
return;
}
// ...
}