Primefaces RowEditor不适用于Spring Webflow(Primefaces RowEditor does not work with Spring Webflow)

编程入门 行业动态 更新时间:2024-10-17 07:35:07
Primefaces RowEditor不适用于Spring Webflow(Primefaces RowEditor does not work with Spring Webflow)

我有Primefaces DataTable in-cell editing:

<p:dataTable id="docsTable" editable="true" value="#{customer.docs}" var="doc" style="border-width:0px;" > <p:growl id="docsMessages" showDetail="true"></p:growl> <p:ajax event="rowEdit" update="docsMessages,docsTable" listener="#{customerController.onEditDocument}"></p:ajax> <p:ajax event="rowEditCancel" update="docsMessages,docsTable" listener="#{customerController.onEditDocumentCancel}"></p:ajax> <p:column headerText="Document Type"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{doc.docType}"></h:outputText> </f:facet> <f:facet name="input"> <p:inputText value="#{doc.docType}"></p:inputText> </f:facet> </p:cellEditor> </p:column> <p:column headerText="Document Number"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{doc.docNum}"></h:outputText> </f:facet> <f:facet name="input"> <p:inputText value="#{doc.docNum}"></p:inputText> </f:facet> </p:cellEditor> </p:column> <p:column> <p:rowEditor></p:rowEditor> </p:column> </p:dataTable>

这是相应的SWF视图状态定义:

<view-state id="enterDetails" view="/WEB-INF/views/tiles/customer/s3-custDetails.xhtml" model="customer"> <!-- tiles/customer/s3-custDetail --> <secured attributes="ROLE_WEB" /> <var name="customerController" class="com.my.CustomerController"/> <transition on="addNewDocument"> <evaluate expression="customer.docs.add(new com.my.CustomersDocs())"></evaluate> <render fragments="custDetails"></render> </transition> </view-state>

视图渲染正常,值保存在辅助bean中,并且我的控制器中也调用了rowEdit侦听器。 但是,无论用户做什么,它都不会退出编辑器模式。 我做了一些网络嗅探,看起来SWF只发回了viewstate,而Primefaces showcase也发回了渲染的片段。

我该如何解决?

I have Primefaces DataTable with in-cell editing:

<p:dataTable id="docsTable" editable="true" value="#{customer.docs}" var="doc" style="border-width:0px;" > <p:growl id="docsMessages" showDetail="true"></p:growl> <p:ajax event="rowEdit" update="docsMessages,docsTable" listener="#{customerController.onEditDocument}"></p:ajax> <p:ajax event="rowEditCancel" update="docsMessages,docsTable" listener="#{customerController.onEditDocumentCancel}"></p:ajax> <p:column headerText="Document Type"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{doc.docType}"></h:outputText> </f:facet> <f:facet name="input"> <p:inputText value="#{doc.docType}"></p:inputText> </f:facet> </p:cellEditor> </p:column> <p:column headerText="Document Number"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{doc.docNum}"></h:outputText> </f:facet> <f:facet name="input"> <p:inputText value="#{doc.docNum}"></p:inputText> </f:facet> </p:cellEditor> </p:column> <p:column> <p:rowEditor></p:rowEditor> </p:column> </p:dataTable>

Here is corresponding SWF view state definition:

<view-state id="enterDetails" view="/WEB-INF/views/tiles/customer/s3-custDetails.xhtml" model="customer"> <!-- tiles/customer/s3-custDetail --> <secured attributes="ROLE_WEB" /> <var name="customerController" class="com.my.CustomerController"/> <transition on="addNewDocument"> <evaluate expression="customer.docs.add(new com.my.CustomersDocs())"></evaluate> <render fragments="custDetails"></render> </transition> </view-state>

The view renders fine, values are saved in backing bean, and rowEdit listener is called in my controller as well. However it never exits the editor mode no matter what user does. I did some network sniffing and it appears SWF is only sending back the viewstate, whereas Primefaces showcase also sends back rendered fragment.

How do I fix this?

最满意答案

这是Spring webflow中的错误/缺陷。 它在Spring文档中提到(参见http://static.springsource.org/spring-webflow/docs/2.3.x/reference/html/ch13s10.html ),但是以一种相当模糊的方式提到并且没有提到与部分渲染的关系的问题。 修复很简单,在webflow中添加以下内容:flow-executor标记:

<webflow:flow-execution-attributes> <webflow:redirect-in-same-state value="false"/> </webflow:flow-execution-attributes>

This is a bug/deficiency in Spring webflow. It is mentioned in Spring docs (see http://static.springsource.org/spring-webflow/docs/2.3.x/reference/html/ch13s10.html) but in a rather obscure fashion and does not mention relation to partial rendering issues. The fix is simple, add the following in webflow:flow-executor tag:

<webflow:flow-execution-attributes> <webflow:redirect-in-same-state value="false"/> </webflow:flow-execution-attributes>

更多推荐

<p,><,电脑培训,计算机培训,IT培训"/> <meta name="description&qu

本文发布于:2023-07-07 21:32:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1068471.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不适用于   RowEditor   Primefaces   work   Webflow

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!