相关疑难解决方法(0)

通过ajax渲染其他形式会导致其视图状态丢失,如何将其添加回来?

我有

<h:form>
    <h:commandLink action="#{my_fake_ajax_link}">
        <h:outputText value="Link" />
        <f:ajax render=":mydiv" />
    </h:commandLink>
</h:form>

<h:panelGroup layout="block" id="mydiv">
    <h:form>
        <h:commandLink action="#{mybean.delete(0)}">
            <h:outputText value="Here" />
            <f:ajax render="@form" />
        </h:commandLink>
    </h:form>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

当我点击"my_fake_ajax_link"时,我必须在"删除"链接上单击两次.这只是一个例子.我没有这个真实案例.我在页面上有多个表单,我不能只在一个表单中添加所有表单.

我检查了问题是什么,它是:

  • 当您单击"my_fake_ajax_link"时,mydiv使用ajax 进行刷新.
  • 缺少ajax上刷新表单的ViewState.

如何添加ViewState?如何在不使用一个表单的情况下使其工作?这看起来像是一个JSF错误.我不想自动刷新该div

jQuery("#mydiv").load(document.location.href);
Run Code Online (Sandbox Code Playgroud)

但在最坏的情况下,我会尽可能的.

forms viewstate ajax jsf jsf-2

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

ajax ×1

forms ×1

jsf ×1

jsf-2 ×1

viewstate ×1