0
votes

I have a strange behaviour in my app and I'm running out of options to solve it, because sometimes it works and other times it doesn't (depending on the component hierarchy). Basically, I'm using an inputTextArea and send the value via setPropertyActionListener to my server for further logic on my application. The feature is actually a list of comments .

<h:panelGroup rendered="#{(cc.attrs.requestCommentListComponentModel.requestCommentEditableMap[requestCommentVar.id]) and (cc.attrs.isModificationAllowed)}">
                                <div>
                                    <p:inputTextarea id="modifyRequestCommentInputTextArea" maxlength="255" styleClass="modifyRequestCommentInputTextArea" value="#{requestCommentVar.comment}" />
                                </div>

                                <h:panelGroup id="modifyRequestCommentControlButtonsPanelGroup" styleClass="requestCommentControlButtonsPanelGroup">
                                    <p:commandButton
                                        id="cancelRequestCommentModificationCommandButton"
                                        action="requestCommentListComponent.cancelEditRequestComment"
                                        onclick="jQuery.simpleBlockUI();cleanWatermark();"
                                        onerror="jQuery.unblockUI();"
                                        oncomplete="showWatermark();jQuery.unblockUI();closeComponent('#entityTaskManagementDialog');closeComponent('#quickTaskDialog');"
                                        process="@none"
                                        styleClass="requestCommentListComponentCommandButton"
                                        value="#{omnimed['global.cancel']}">
                                        <f:setPropertyActionListener target="#{cc.attrs.requestCommentListComponentModel.currentRequestComment}" value="#{requestCommentVar}" />
                                        <f:setPropertyActionListener target="#{conversationScope.requestCommentListComponentModel}" value="#{cc.attrs.requestCommentListComponentModel}" />
                                    </p:commandButton>
                                    <p:commandButton
                                        id="saveRequestCommentModificationCommandButton"
                                        action="requestCommentListComponent.updateRequestComment"
                                        onclick="jQuery.simpleBlockUI();cleanWatermark();"
                                        onerror="jQuery.unblockUI();"
                                        oncomplete="showWatermark();jQuery.unblockUI();closeComponent('#entityTaskManagementDialog');closeComponent('#quickTaskDialog');"
                                        styleClass="postButton requestCommentListComponentCommandButton"
                                        value="#{omnimed['global.save']}">
                                        <f:setPropertyActionListener target="#{cc.attrs.requestCommentListComponentModel.currentRequestComment}" value="#{requestCommentVar}" />
                                        <f:setPropertyActionListener target="#{conversationScope.requestCommentListComponentModel}" value="#{cc.attrs.requestCommentListComponentModel}" />
                                    </p:commandButton>
                                </h:panelGroup>
                            </h:panelGroup>

So, the problem is when I get the value ( #{requestCommentVar.comment} ) with the setPropertyActionListener. There's is a value, but it is always the old one (aka the one stored in the model). If I enter a new text, it still give me back to old value with no errors. I've done this implementation before and it worked.

Also, I should say that I have a component within another component. So, I have a datatable (ui-repeat) of Class A for which each contains also a datatable (ui-repeat) of Class B in my parent level component. Then I have a child component, which have a datatable (ui-repeat) of my class C for each Class A. Class C are actually a list of comments and I have a problem when I'm trying to modify a comment.

1
" since I have heard p:dataTable are not stable" where have you heard this?JamesB
Seen on forum and experienced strange behaviour for nested p:dataTable .fneron
can u try process="@this,modifyRequestCommentInputTextArea" on commnadbuttonPankaj Kathiriya
@PankajKathiriya Post the answer, it works! Sweet!fneron

1 Answers

1
votes

Please add process attribute to your commandButton like process="@this,modifyRequestCommentInputTextArea"

Thanks, Pankaj