在 JSF 中更新和呈现标记



我正在尝试使用素数中的更新标签显示/不显示素数数据表。

当我重新加载 (F5) 页面时,表格将正确呈现,但随后我将丢失我输入到表单中的所有数据。 我一直在寻找ajax解决方案,但到目前为止我找不到任何解决方案。

我的代码:

<h:form id="adminForm">
  <h:selectOneMenu id="adminTypeMenu" value="#{adminBean.orgType}">
    <f:selectItem itemValue="" itemLabel="- Select One -"/>
    <p:ajax actionListener="#{adminBean.updateOrgType}" update="adminForm" />
  </h:selectOneMenu>
  <p:dataTable id="adminMacTable" value="#{adminBean.currentArray}" var="currentOrg" 
    rendered="#{adminBean.Type eq 'bco'}" selection="#{adminBean.selectedMac}"
    emptyMessage="No Records Found">
    ...
  </p:dataTable>
</h:form>

当前实现显示数据表,但删除了我的任何表单输入。 有没有办法在不清除表单值的情况下呈现数据表?

更新:只是尝试了相同的代码,但没有使用,但得到了相同的结果,仍在尝试其他方法!

试试这个:

 <h:form id="adminForm" prependId="false">
  <h:selectOneMenu id="adminTypeMenu" value="#{adminBean.orgType}">
    <f:selectItem itemValue="" itemLabel="- Select One -"/>
    <p:ajax actionListener="#{adminBean.updateOrgType}" update="adminMacOutput" />
  </h:selectOneMenu>
  <p:outputPanel id="adminMacOutput">
  <p:dataTable id="adminMacTable" value="#{adminBean.currentArray}" var="currentOrg" 
    rendered="#{adminBean.Type eq 'bco'}" selection="#{adminBean.selectedMac}"
    emptyMessage="No Records Found">
    ...
  </p:dataTable>
  </p:outputPanel>
 </h:form>

如果这不起作用,请尝试将数据表放在单独的窗体中并更新第二个窗体。

我猜 AdminBean 可能在请求范围内,在这种情况下,您的 ajax 事件将更新它,但当您按 F5 时会重新创建它。如果是这样,那么ViewScoped将有所帮助:

@ManagedBean(name = "adminBean")
@ViewScoped
public class AdminBean {
}

相关内容

  • 没有找到相关文章

最新更新