Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PrimeFaces+;SWF:commandButton不';t根据源对象触发dataTable中的任何操作/事件_Primefaces_Datatable_Flash_Commandbutton - Fatal编程技术网

PrimeFaces+;SWF:commandButton不';t根据源对象触发dataTable中的任何操作/事件

PrimeFaces+;SWF:commandButton不';t根据源对象触发dataTable中的任何操作/事件,primefaces,datatable,flash,commandbutton,Primefaces,Datatable,Flash,Commandbutton,我遇到了一个奇怪的问题/错误,在任何地方都找不到有效的解决方案 情况是:我有一个SpringWebFlow调用一个视图状态,其中包含一个dataTable,显示一个对象列表,每个对象旁边都有一个“编辑”按钮 以下是SWF的外观: 一些解释: 1) “MyObject”类是一个简单的pojo,具有一些属性和用于持久性的实体注释 2) “myObjectService.findAll()”返回所有存储的“MyObject”的列表 下面是视图代码(使用模板standard.xhtml): 结果表

我遇到了一个奇怪的问题/错误,在任何地方都找不到有效的解决方案

情况是:我有一个SpringWebFlow调用一个视图状态,其中包含一个dataTable,显示一个对象列表,每个对象旁边都有一个“编辑”按钮

以下是SWF的外观:


一些解释:

1) “MyObject”类是一个简单的pojo,具有一些属性和用于持久性的实体注释

2) “myObjectService.findAll()”返回所有存储的“MyObject”的列表

下面是视图代码(使用模板standard.xhtml):


结果表
名称#{item.Name}
说明#{item.Description}
随便{item.随便}
行动
当我单击其中一个“编辑”按钮时,跟踪告诉我视图正在重新渲染,但动作/事件“编辑”从未在任何地方触发、检测或捕获(至少我知道)

有趣的是:如果我将对服务的调用(加载对象列表)从流移动到视图中的dataTable“value”属性,如下所示:


这个问题很久以前就被问过了,但现在我面临着同样的问题。这就是我发现的

最后一个SWF预订面(WebFlow:2.4.0.M1)示例也有相同的问题

在“main flow.xml”中,它定义了:

<view-state id="enterSearchCriteria">
    <on-render>
        <evaluate expression="bookingService.findBookings(currentUser?.name)" **result="viewScope.bookings"** result-type="dataModel" />
    </on-render>
    <transition on="search" to="reviewHotels"/>
    <transition on="cancelBooking">
        <evaluate expression="bookingService.cancelBooking(bookings.selectedRow)" />
    </transition>
</view-state>

在“enterSearchCriteria.xhtml”中,它声明了一个迭代预订的
。 dataTable具有以下列定义:

<p:column>
    <f:facet name="header">Action</f:facet>
    <p:commandButton id="cancel" value="Cancel" action="cancelBooking" update=":bookings"/>
</p:column>

行动
单击“取消”按钮时,不会发生任何事情。通过查看跟踪,我可以看到视图正在重新渲染,但从未调用“bookingService.cancelBooking(bookings.selectedRow)”方法

但是,如果我将“bookings”变量的范围更改为“conversationScope”,它将起作用:

<view-state id="enterSearchCriteria">
    <on-render>
        <evaluate expression="bookingService.findBookings(currentUser?.name)" **result="conversationScope.bookings"** result-type="dataModel" />
    </on-render>
    <transition on="search" to="reviewHotels"/>
    <transition on="cancelBooking">
        <evaluate expression="bookingService.cancelBooking(bookings.selectedRow)" />
    </transition>
</view-state>


这是viewScope/flowScope的错误吗?

尝试将
immediate=“true”
属性添加到
commandButton
。 这使按钮的优先级高于验证,应该处理操作