我有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
发布评论