You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Carsten Kaiser <ca...@valtech.de> on 2007/02/28 21:45:27 UTC

RE: [Tomahawk] [SOLVED] Urgent: DataTable Update model not working

You're right! I was just debugging into it and way of confused, how the 
request parameters are populated back to the model, when this local value 
flag is never set... Now, I figured out, how this is done, cause since I 
provided the correct identifier for my form in the actionFor attribute of 
my command button, everything is working fine now!

Regards,
CAK



-- 
Carsten Kaiser
Principal Consultant
mailto:carsten.kaiser@valtech.de
Mobile: +49 (0)170 5270206

Valtech GmbH
Werner-Heisenberg-Straße 2
63263 Neu-Isenburg
Germany

Phone: +49 (0)6102 88468-0
Fax: +49 (0)6102 88468-28

http://www.valtech.de

Geschäftsführer: Ingo Kriescher
Amtsgericht Düsseldorf HRB48672




-----Ursprüngliche Nachricht-----

Von: Mike Kienenberger [mailto:mkienenb@gmail.com]
Gesendet: Mittwoch, 28. Februar 2007 21:14
An: MyFaces Discussion
Betreff: Re: [Tomahawk] Urgent: DataTable Update model not working

You'll be more likely to get help if you post what the particulars of
your problem are rather than telling us how you think the JSF
framework works or should work  :-)



On 2/28/07, Carsten Kaiser <ca...@valtech.de> wrote:
>
>
>
>
>
> Hello,
>
>
>
> I'm a newbie in JSF, therefore I need someone, who can explain to me, 
> how
> model updates can be are performed at all
>
> when local value set remains false!
>
>
>
> As far as I understand when a new view is rendered, all values are 
> retrieved
> from the managed bean and are written to
>
> the response. Afterwards the state of the component tree is serialized. 
> When
> the next request comes in, the component
>
> tree gets restored and the changed values are supposed to be populated 
> into
> the managed bean in the update model phase.
>
>
>
> Ok, that's theory. In practise I'm facing the following problem: In
> processUpdate the UIInput component checks for the
>
> localValueSet variable. If it is not set, no model update is performed! 
> This
> variable is serialized with the component tree
>
> and restored with the next request. So in the initial view rendering 
> phase,
> it is never set to true, since the render
>
> (HtmlTextRenderer for example) does not call setValue on the component 
> at
> all! Thus in the applyRequestValue phase when
>
> the state is restored, its value remain false. Only restoreState is 
> called
> on the database table, but the request values are never
>
> populated into the data table! So the value remains false and ergo the
> managed bean is never updated!
>
>
>
> So how can I enforce, that the request values are applied?
>
>
>
> Here are some code snippets from my jsp, managed bean and 
> faces-config.xml:
>
>
>
> JSP:
>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="jsf-core" %>
>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="jsf-html"%>
>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk"
> prefix="tomahawk"%>
>
> <%@ taglib uri="http://myfaces.apache.org/sandbox"
> prefix="sandbox"%>
>
> <%@ taglib uri="http://sourceforge.net/projects/facestrace"
> prefix="trace"%>
>
>
>
> <%@include file="../messages.jspf"%>
>
>
>
>          <jsf-core:subview id="propertiesSubview">
>
>        <sandbox:subForm id="propertiesForm">
>
>                  <tomahawk:dataTable bgcolor="#F5F5F5"
>
>                               var="property"
>
>                               value="#{componentBackup.properties}"
>
>                               border="1"
>
>                               cellspacing="0"
>
>                               footerClass="text12"
>
>                               headerClass="heading2grey"
>
>                              rules="groups"
>
>                               rows="14"
>
>                               forceId="true"
>
>                               forceIdIndex="true"
>
>                               forceIdIndexFormula="#{property.name}"
>
>                               width="580">
>
>                      <jsf-core:facet name="header">
>
>                        <tomahawk:panelGroup colspan="2">
>
>                              <tomahawk:outputText
> value="#{generation['klartextGenerator_tree_label']}"
> rendered="#{componentBackup.identifier == 'klartextGenerator'}"/>
>
>                              <tomahawk:outputText
> value="#{generation['contextProvider_tree_label']}"
> rendered="#{componentBackup.identifier == 'contextProvider'}"/>
>
>                         </tomahawk:panelGroup>
>
>                       </jsf-core:facet>
>
>                       <jsf-html:column>
>
>                  <tomahawk:outputText styleClass="text12"
> value="#{property.displayName}  "/>
>
>                       </jsf-html:column>
>
>                       <jsf-html:column>
>
>                         <tomahawk:inputText rendered="#{property.name ==
> 'no'}"
>
>                                      id="_no"
>
>                                      title="#{property.description}"
>
>                                      required="#{property.mandatory}"
>
>                                      readonly="#{!property.modifiable}"
>
>                                      forceId="true"
>
>                                      forceIdIndex="true"
>
> 
> value="#{componentBackup.values['no']}"
>
>                                      maxlength="5"
>
>                                      size="5"/>
>
>                         <tomahawk:inputTextarea 
> rendered="#{property.name ==
> 'title'}"
>
>                                      id="_title"
>
>                                      title="#{property.description}"
>
>                                      required="#{property.mandatory}"
>
>                                      readonly="#{!property.modifiable}"
>
>                                      forceId="true"
>
>                                      forceIdIndex="true"
>
>
> value="#{componentBackup.values['title']}"
>
>                                      converter="CDATA"
>
>                                      cols="40"
>
>                                      rows="2"
>
>                                      wrap="off"/>
>
>                         <tomahawk:inputTextarea 
> rendered="#{property.name ==
> 'greeting'}"
>
>                                      id="_greeting"
>
>                                      title="#{property.description}"
>
>                                      required="#{property.mandatory}"
>
>                                      readonly="#{!property.modifiable}"
>
>                                      forceId="true"
>
>                                      forceIdIndex="true"
>
>
> value="#{componentBackup.values['greeting']}"
>
>                                      converter="CDATA"
>
>                                      cols="40"
>
>                                      rows="4"
>
>                                      wrap="off"/>
>
>                  <tomahawk:inputTextarea rendered="#{property.name ==
> 'text'}"
>
>                                      id="_text"
>
>                                      title="#{property.description}"
>
>                                      required="#{property.mandatory}"
>
>                                      readonly="#{!property.modifiable}"
>
>                                      forceId="true"
>
>                                      forceIdIndex="true"
>
>
> value="#{componentBackup.values['text']}"
>
>                                      converter="CDATA"
>
>                                      cols="40"
>
>                                      rows="2"
>
>                                      wrap="off"/>
>
>                         <tomahawk:inputTextarea 
> rendered="#{property.name ==
> 'teaser'}"
>
>                                      id="_teaser"
>
>                                      title="#{property.description}"
>
>                                      required="#{property.mandatory}"
>
>                                      readonly="#{!property.modifiable}"
>
>                                      forceId="true"
>
>                                      forceIdIndex="true"
>
>
> value="#{componentBackup.values['teaser']}"
>
>                                      converter="CDATA"
>
>                                      cols="40"
>
>                                      rows="2"
>
>                                      wrap="off"/>
>
>                         <tomahawk:inputTextarea 
> rendered="#{property.name ==
> 'securityResource'}"
>
>                                      id="_securityResource"
>
>                                      title="#{property.description}"
>
>                   ...
>
> [Message clipped]