当前位置: 首页 > 知识库问答 >
问题:

在使用PrimeFaces 5.3删除最后一个面板时,所有面板都将消失

雍兴修
2023-03-14

请看下图。

图像

这些图像显示了我当前代码的工作方式。当我删除最后一个面板并按下update按钮时,所有面板不知何故都消失了。当我对其余的面板做同样的操作时,它工作得很好。

如果有人知道如何解决这些问题,那将是一个很大的帮助。提前道谢。

“XHTML”

<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:p="http://primefaces.org/ui"
        xmlns:ui="http://java.sun.com/jsf/facelets">
      <h:head></h:head>
      <h:body>
        <h:form>
          <ui:repeat value="#{newapp001.list}" var="item" >
            <p:panel header="#{item}" closable="true" >
              <p>my information</p>
            </p:panel>
          </ui:repeat>
          <p:commandButton value="Update" update="@form" />
        </h:form>
      </h:body>
    </html>

“ManagedBean”包示例;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named("newapp001")
@SessionScoped
public class NewApp001 implements Serializable
{
    private static final long serialVersionUID = 2610647621325923945L;

    private List<String> list;

    public NewApp001()
    {
        this.list = new ArrayList<>();
        this.list.add("aaa");
        this.list.add("bbb");
        this.list.add("ccc");
        this.list.add("ddd");

        return;
    }

    public List<String> getList()
    {
        return this.list;
    }
}   

共有1个答案

澹台啸
2023-03-14

当您按下按钮时,面板的可见性状态将被提交。最后呈现的面板的状态会影响所有面板,这肯定是一个PF错误。

由于您似乎对跟踪可见性状态不感兴趣,因此最简单的修复方法是不处理面板,从而不在服务器上存储可见性状态:

<p:commandButton value="Update" process="@this" update="@form" />
 类似资料:
  • 我试图通过点击JButton将一张新卡添加到现有的JPanel(cardLayout)中,然后转到该新卡,但由于新卡未注册,我得到了空异常。 我试着在谷歌上搜索,但找不到和示例,我试着用 但什么都不管用,这是可能的吗?如果是的话,有人知道任何例子吗? 代码如下,jPanelSliding1。NextSlidePanel只需移动到CardLayout中选定的JPanel。此处创建的新面板由于找不到面

  • 问题内容: 我创建了一个框架,然后在其中创建了面板。我已经将图像放置在一个 面板中,现在我需要将该图像拖动到另一个面板中。我该怎么做。 请作为初学者逐步说明。 问题答案: 使用纯Java的快速示例DragGestureListener,DropTargetAdapter并 TransferHandler为一个面板上的图像对另一面板的DnD支持: 选择绿色形状并将其拖动到上方的空白面板后:

  • 我有大量数据,需要清理。B列为关键列;如果B列中有空值,则可以删除该行的其余部分。 我在B列上排序,所有的空值都在表的底部。在C-BZ列中有数据,但在B中没有。我想自动识别B中最后一个非空值(假设它是单元格B3841),然后删除工作表底部的3842行。我的数据集每天都在变化。 下面的代码对B列进行排序,然后删除所有完全空的行。我还想删除在B列中为null但在C或D或任何其他行中可能有数据的行。

  • 我正在构建一个Java程序。该程序的核心在JFrame中可视化,其中包含一个JMenuBar和各种JMenuItem和JMenu。关键是我在所有框架中添加了一个centralPanel,但是如果我在centralPanel中添加了一些内容,那么只有在调整主框架的大小、缩小或放大它时,它才会显示出来!代码如下: 这是构造函数: 在这里,我添加了中央面板,在这里,在ActionListener中,我试

  • 问题内容: 我有这样的代码: 它会输出: 键:a值:b,键:c值:d, 但我想要这样的东西: 键:a值:b,键:c值:d 我不需要最后一个逗号,如何删除它。我在这里找到了用于循环数组的解决方案:https : //groups.google.com/d/msg/golang- nuts/XBScetK-guk/Bh7ZFz6R3wQJ ,但是我无法获取地图索引。 问题答案: 这是使用模板函数编写逗

  • 我有三个JPanel,我用gridlayout将它们添加到contentPane中;gridlayout包含3行。面板之间有令人讨厌的间隙。我怎样才能轻易摆脱这些?我尝试调整JFrame的大小,但空格仍然存在。我还尝试重新调整网格布局选项,如HGap和Vgap,但没有解决问题。我看了之前关于这个的一些问题,但没有一个解决了这个问题。看起来是这样的: