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

带有Primeface的可拖动数据表和命令按钮的空点异常

臧令
2023-03-14

我有一个非常基本的页面,包含一个DataTable和一个CommandButton:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">

<h:head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>

<h:body>
  <p:dataTable id="npeTestTable"
           var="_element" value="#{testBB.listOfElements}"
           draggableColumns="true" >
    <p:column headerText="Column one">
      <h:outputText value="#{_element}" />
    </p:column>
  </p:dataTable>

  <h:form>
    <p:commandButton value="Click me" />
  </h:form>
</h:body>
</html>

方法< code > testbb . getlistofelements()只返回< code>Integer值的集合。重要的是,DataTable设置了属性< code > draggableColumns = " true " 。如果我单击CommandButton,我会得到以下< code > NullPointerException :

09:59:04,018 SCHWERWIEGEND [org.primefaces.extensions.component.ajaxerrorhandler.AjaxExceptionHandler] (http-0.0.0.0-0.0.0.0-8080-6) null: javax.faces.FacesException
    at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:86) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.16.Final.jar:2013-09-23 14:44]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
    at org.omnifaces.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:115) [omnifaces-1.6.3.jar:1.6.3]
    at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75) [omnifaces-1.6.3.jar:1.6.3]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
    at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2]
    at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2]
    at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2]
    at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2]
    at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2]
    at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2]
    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:397) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_33]
Caused by: java.lang.NullPointerException
    at org.primefaces.component.datatable.feature.DraggableColumnsFeature.decode(DraggableColumnsFeature.java:35) [primefaces-4.0.jar:4.0]
    at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:60) [primefaces-4.0.jar:4.0]
    at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at org.primefaces.component.api.UIData.processDecodes(UIData.java:232) [primefaces-4.0.jar:4.0]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) [jsf-impl-2.1.7-jbossorg-2.jar:]
    ... 34 more

< code > DraggableColumnsFeature 希望获取请求参数的< code>columnOrder,但它不在中。对< code>split的调用引发异常。

对我来说,这似乎是一个Primefaces-bug。由于示例看起来非常基本,我无法相信到目前为止还没有检测到这个问题。所以我不确定我是否错过了重要的事情或概念(这基本上是我想问的问题)。

我正在运行Primefaces 4.0,Mojarra 2.1.7-jbossorg-1,JBoss 7.1.1。

共有1个答案

鲜于煜祺
2023-03-14

把你的<代码>

<html>
  ...
  <h:body>
    <h:form>
      <p:dataTable id="npeTestTable"
                   var="_element" value="#{testBB.listOfElements}"
                   draggableColumns="true" >
        ...
      </p:dataTable>
    </h:form>
  </h:body>
</html>

其他人似乎在老版本的PrimeFaces上也有类似的问题。不幸的是,手册中没有提到数据表显然应该包含在表单中。

 类似资料:
  • 我有一个包含三个滑动操作的列表项,如下所示: 常规列表项和按钮是在xml中定义的两种不同布局。 为了显示按钮操作,我使用了< code > ItemTouchHelper。简单回调。在< code>onChildDraw中,我告诉只绘制项目列表项目的x轴,直到它达到按钮控件的宽度。 这是一个简短的布局文件,演示了我构建用户界面的方式: 我的问题是按钮不可点击。到目前为止,我尝试过: < li >设

  • 我有一个包含两行的数据表和一个列,其中有一个带有删除该行中对象的简单按钮的表单。 首先是工作版本: 这就是deleteActor方法的样子: 所以这完全按照预期工作。 然而,当我使用如图所示的素数面的分页数据表时,删除按钮仅在第二种情况下的第一行起作用,并且仅在第一次起作用。当我点击其他行的“删除”按钮时,什么也没发生。原因可能是什么? 对于第二种情况,只需将

  • 本文向大家介绍ios可拖动按钮实例,包括了ios可拖动按钮实例的使用技巧和注意事项,需要的朋友参考一下 最近产品抽风,想做许鲜网的那个小客服按钮,虽然没啥难度,但是我懒啊,哈哈,上度娘搞了一个,但是点击事件和拖动重复了,擦。干脆写一个吧,仅供参考。 话不多说,上代码: 以上这篇ios可拖动按钮实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我有这个小网站,我想用请求库填写表格。问题是当填写表单数据并单击按钮时,我无法到达下一个站点(输入不起作用)。 重要的是,我无法通过某种类型的点击漫游器来做到这一点。这需要完成,这样我才能在没有图形的情况下运行。 前三个条目的名称,消息,符号是文本区域,步骤是我认为的按钮。 当我通过chrome手动发送请求时,表单数据如下所示: 姓名:约翰·约翰 讯息:XXX 签名:XXX 第1步 b

  • 我有一个自动完成的文本框,如下所示: 当我按回车键时,我想执行搜索命令,但如果屏幕上的建议组合框,按回车键只能关闭建议组合框,我需要再次按回车键来执行命令。有没有一种方法可以关闭建议组合框并执行一次输入按钮的命令? 谢谢

  • 我有一个Maven/Spring-Boot/Thymeleaf项目,我希望在一行中单击一个按钮,以触发一个模式弹出窗口,其中包含该行数据的详细视图。 我最初的问题是,当在任何给定行上单击按钮时,模态弹出窗口只会显示第一行的数据。我意识到这是因为每一行中的每个按钮都有相同的数据目标,并且浏览器正在抓取表中的第一行。 所以,现在我正在尝试使用JavaScript/jQuery为我填充模态数据。我已经删