incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Winer" <awi...@gmail.com>
Subject Re: Keeping selectOneChoice selection
Date Tue, 10 Apr 2007 20:31:26 GMT
It's not a bug - it's just how JSF works.  You need to be
careful when supplying EL bindings for "rendered".

-- Adam


On 4/10/07, Francisco Passos <francisco.passos@opensoft.pt> wrote:
> I'm probably going for this scenario.
>
> Thank you and William for the help you both gave me on this.
>
> Still, I'd like to know if this behaviour for the "rendered" attribute is
> an identified bug (which will likely be addressed) or if it is a know
> limitation which we'll have to live with.
>
> Regards,
> Francisco Passos
>
> > It is true that if you have a scenario where "rendered" is different
> > when rendering and on the next, postback request, things will
> > go badly.
> >
> > pageFlowScope is one way around that.  However, a much simpler
> > approach is to just use setRendered() on the component to toggle
> > "rendered".  JSF state saving will automatically preserve that
> > change in "rendered".  Since you already have a "binding" on
> > that selectOneChoice, then just have:
> >   getAnoPnifa().setRendered(false);
> > ... if you want to hide the selectOneChoice.
> >
> > -- Adam
> >
> >
> >
> > On 4/10/07, William Hoover <whoover@nemours.org> wrote:
> >> Using the rendered feature is not very useful when doing post backs to
> >> the same page. If they are not rendered on the page and then rendered on
> >> the second response they break. This is because they were not processed
> >> correctly in the ui tree that is maintained by jsf. If you need to
> >> conditionally render EditableValueHolders that need post back I would
> >> try placing them in Trinidads "pageFlowScope" and see if that works for
> >> you.
> >>
> >> -----Original Message-----
> >> From: Francisco Passos [mailto:francisco.passos@opensoft.pt]
> >> Sent: Tuesday, April 10, 2007 5:41 AM
> >> To: adffaces-user@incubator.apache.org
> >> Subject: RE: Keeping selectOneChoice selection
> >>
> >>
> >> Hello once again and thank you for your hints.
> >>
> >> I've just tried removing the rendered feature on the selectOneChoice and
> >> surprisingly it now works!
> >>
> >> Why is this so? Is it possible to have these two features at the same
> >> time?
> >>
> >> Francisco Passos
> >>
> >> > It seems like this should work, but just as a process of elimination,
> >> have
> >> > you tried removing the rendered feature? Does your "anoPnifaItems"
> >> have a
> >> > blank entry in the list? I noticed that the infamous blank option
> >> appears
> >> > in your list indicating the "SimpleSelectOneRenderer" was unable to
> >> set
> >> > the value. Also, try using strings for your selection item values.
> >> When
> >> > the component evaluates what index was selected it looks at
> >> > value.equals(item.getValue()) if the class types of these values do
> >> not
> >> > match it will be unable to find the selected index. Also, have you
> >> checked
> >> > the components value and submitted values to see what they are at
> >> runtime?
> >> >
> >> > -----Original Message-----
> >> > From: Francisco Passos [mailto:francisco.passos@opensoft.pt]
> >> > Sent: Monday, April 09, 2007 1:26 PM
> >> > To: adffaces-user@incubator.apache.org
> >> > Subject: RE: Keeping selectOneChoice selection
> >> >
> >> >
> >> >
> >> > Sure, thank you.
> >> >
> >> > I should point out I'm using facelets. Furthermore, some variables are
> >> in
> >> > portuguese, sorry for that. If you find there is something I am doing
> >> in a
> >> > non-standard fashion, please feel free to advise me, since I've only
> >> just
> >> > scraped the surface of JSF and Trinidad.
> >> >
> >> > Here's the code then:
> >> >
> >> >
> >> > ------ PAGE CODE: fichaProdConsulta.xhtml ------
> >> >
> >> > <?xml version='1.0' encoding='windows-1252'?>
> >> > <trh:html xmlns="http://www.w3.org/1999/xhtml"
> >> >       xmlns:f="http://java.sun.com/jsf/core"
> >> >       xmlns:h="http://java.sun.com/jsf/html"
> >> >       xmlns:tr="http://myfaces.apache.org/trinidad"
> >> >       xmlns:trh="http://myfaces.apache.org/trinidad/html"
> >> >       xmlns:ui="http://java.sun.com/jsf/facelets"
> >> >       xmlns:c="http://java.sun.com/jstl/core"
> >> >       xmlns:t="http://myfaces.apache.org/tomahawk" id="htmlid">
> >> >
> >> > <trh:head id="headid"/>
> >> > <trh:body id="bodyid">
> >> >       <f:view>
> >> >               <ui:composition
> >> template="/templates/mainTemplate.xhtml">
> >> >                       <ui:define name="PageContent">
> >> >
> >> >
> >> >                               <h3 style="stph3"><tr:outputText
> >> value="Ficha de Produto" /></h3>
> >> >                               <h4 style="stph4"><tr:outputText
> >> value="[ Importação ]"
> >> > styleClass="stph4"/></h4>
> >> >
> >> >                               <div align="center">
> >> >                                       <tr:panelGroupLayout
> >> partialTriggers="correntePnifa"
> >> > layout="vertical" styleClass="stptable" inlineStyle="width:300px">
> >> >                                               <tr:panelHorizontalLayout
> >> styleClass="invisibleTable"
> >> > inlineStyle="text-align: center;" partialTriggers="correntePnifa">
> >> >                                                       <tr:selectOneRadio
> >> id="correntePnifa"
> >> >                                                               autoSubmit="true"
> >> binding="#{fichaBean.tipoPesquisa}"
> >> >                                                               styleClass="stpinputText"
> >> layout="horizontal"
> >> > value="#{fichaBean.tipoPesquisaSeleccionada}"
> >> >                                                               valueChangeListener="#{fichaBean.updatePnifaVisibility}">
> >> >                                                               <f:selectItem
> >> itemValue="CORRENTE"
> >> itemLabel="Corrente"
> >> />
> >> >                                                               <f:selectItem
> >> itemValue="PNIFA"
> >> itemLabel="PNIFA"
> >> />
> >> >                                                       </tr:selectOneRadio>
> >> >                                               </tr:panelHorizontalLayout>
> >> >                                               <tr:panelHorizontalLayout
> >> inlineStyle="width:
> >> 200px;">
> >> >                                                       <hr
> >> style="height:1px;"
> >> />
> >> >                                               </tr:panelHorizontalLayout>
> >> >                                               <tr:panelHorizontalLayout>
> >> >                                                       <tr:outputText
> >> value="Código
> >> Pautal"
> >> styleClass="titleCell"
> >> />
> >> >                                                       <tr:outputText
> >> value="Ano"
> >> styleClass="titleCell"
> >> > rendered="#{fichaBean.pnifaVisible}" />
> >> >                                                       <tr:inputText
> >> styleClass="fCodPautal"
> >> maximumLength="22"
> >> > id="codPautal" binding="#{fichaBean.codPautal}"
> >> > value="#{fichaBean.codigoPautal}" />
> >> >                                                       <tr:selectOneChoice
> >> id="selectAnoPnifa"
> >> > binding="#{fichaBean.anoPnifa}"
> >> > value="#{fichaBean.anoPnifaSeleccionado}" styleClass="stpselect"
> >> > rendered="#{fichaBean.pnifaVisible}" valuePassThru="true">
> >> >                                                               <f:selectItems
> >> id="pnifaItems"
> >> value="#{fichaBean.anoPnifaItems}"
> >> > />
> >> >                                                       </tr:selectOneChoice>
> >> >                                               </tr:panelHorizontalLayout>
> >> >                                               <tr:spacer
> >> height="15px"/>
> >> >                                       </tr:panelGroupLayout>
> >> >                                       <tr:commandButton
> >> text="Consultar"
> >> styleClass="fButton"
> >> > action="consultarFichaImport" />
> >> >                                       <tr:commandButton text="Ficar"
> >> styleClass="fButton"
> >> > action="#{fichaBean.valorAlterado}"/>
> >> >
> >> >                               </div>
> >> >                       </ui:define>
> >> >               </ui:composition>
> >> >       </f:view>
> >> > </trh:body>
> >> > </trh:html>
> >> >
> >> >
> >> >
> >> > ------ TEMPLATE CODE: mainTemplate.xhtml ------
> >> >
> >> > <?xml version='1.0' encoding='windows-1252'?>
> >> > <trh:html xmlns="http://www.w3.org/1999/xhtml"
> >> >       xmlns:trh="http://myfaces.apache.org/trinidad/html"
> >> >       xmlns:tr="http://myfaces.apache.org/trinidad"
> >> >       xmlns:f="http://java.sun.com/jsf/core"
> >> >       xmlns:h="http://java.sun.com/jsf/html"
> >> >       xmlns:ui="http://java.sun.com/jsf/facelets"
> >> id="mainTemplatehtml1">
> >> >
> >> > <trh:head id="mainTemplatehead1">
> >> >       <link href="/stp/resources/css/stp.css" rel="stylesheet"
> >> media="screen"/>
> >> >       <link href="/stp/resources/css/calendar.css" rel="stylesheet"
> >> > media="screen"/>
> >> > </trh:head>
> >> >
> >> > <trh:body id="mainTemplatebody1" styleClass="stpbody">
> >> >       <f:view>
> >> >               <f:loadBundle
> >> >                       basename="pt.opensoft.messageResource.MessageResources"
> >> var="msg" />
> >> >               <tr:form id="mainTemplateform1">
> >> >                       <tr:panelPage id="mainTemplatepanelPage1">
> >> >                               <f:facet name="messages">
> >> >                                       <tr:messages id="mainMessagesID"
> >> text="Mensagens"
> >> rendered="true">
> >> >
> >> >                                       </tr:messages>
> >> >                               </f:facet>
> >> >                               <f:facet name="menuGlobal">
> >> >                                       <tr:navigationPane
> >> id="mainTemplatemenuButtons1">
> >> >                                               <tr:panelHorizontalLayout>
> >> >                                                       <tr:commandLink
> >> text="#{msg.label_logout}"
> >> >                                                               id="mainTemplatecommandLink1"
> >> action="#{logoutBean.actionSair}"
> >> >                                                               immediate="true"
> >> />
> >> >                                               </tr:panelHorizontalLayout>
> >> >                                       </tr:navigationPane>
> >> >                               </f:facet>
> >> >
> >> >                               <f:facet name="branding">
> >> >                                       <tr:image
> >> source="#{msg.logo_source}"
> >> >                                               id="mainTemplateobjectImage1"
> >> />
> >> >                               </f:facet>
> >> >
> >> >
> >> >                               <f:facet name="appCopyright">
> >> >                                       <tr:outputFormatted
> >> value="#{msg.label_copyright}"
> >> >                                               id="mainTemplateoutputFormatted1"
> >> />
> >> >                               </f:facet>
> >> >
> >> >
> >> >                               <ui:insert name="menuOpcoes">
> >> >                                       <ui:include
> >> src="../pages/menu.xhtml" />
> >> >                               </ui:insert>
> >> >
> >> >
> >> >                               <ui:insert name="PageContent" />
> >> >
> >> >                       </tr:panelPage>
> >> >               </tr:form>
> >> >       </f:view>
> >> > </trh:body>
> >> >
> >> > </trh:html>
> >> >
> >> >
> >> >
> >> > ------ RENDERED HTML (first access )-------
> >> >
> >> > <?xml version='1.0' encoding='windows-1252'?>
> >> > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
> >> > "http://www.w3.org/TR/html4/loose.dtd"><!--Start:
> >> > org.apache.myfaces.trinidad.Html["mainTemplatehtml1"]--><html
> >> dir="ltr"
> >> > lang="en"><!--Start:
> >> > org.apache.myfaces.trinidad.Head["mainTemplatehead1"]-->
> >> >   <head id="mainTemplatehead1">
> >> >     <meta name="generator" content="Apache Trinidad">
> >> >
> >> >     <link rel="stylesheet" charset="UTF-8" type="text/css"
> >> > href="/stp/adf/styles/cache/simple-desktop-1_0_0-incubating-en-gecko.css"><script>var
> >> > _AdfWindowOpenError='A popup window blocker has been detected in your
> >> > browser. Popup blockers interfere with the operation of this
> >> > application. Please disable your popup blocker or allow popups from
> >> > this site.';</script><script
> >> > src="/stp/adf/jsLibs/Common11-m7.js"></script><script>_defaultTZ()</script>
> >> >
> >> >     <link href="/stp/resources/css/stp.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >     <link href="/stp/resources/css/calendar.css" rel="stylesheet"
> >> > media="screen">
> >> >   </head>
> >> >
> >> >   <!--Start: org.apache.myfaces.trinidad.Body["mainTemplatebody1"]-->
> >> >   <body id="mainTemplatebody1" onload="_checkLoad()"
> >> > onunload="_checkUnload(event)" class="stpbody">
> >> >     <iframe id="_pprIFrame" name="_pprIFrame" frameborder="0"
> >> longdesc="#"
> >> > title="" src="about:blank"
> >> > style="position:absolute;top:-100px;visibility:hidden" width="0"
> >> > height="0"></iframe>
> >> >     <!--Start:
> >> > org.apache.myfaces.trinidad.Body["mainTemplatebody1"]--><div
> >> > id="_pprBlockingDiv" onclick="return _pprConsumeClick(event);"
> >> > style="position:absolute;left:0;top:0;width:0;height:0;cursor:wait;"
> >> > onkeydown="return false;" onkeyup="return false;" onmousedown="return
> >> > false;" onmouseup="return false;" onkeypress="return
> >> > false;"></div><script>var _cachedLibs;</script><a
> >> > name="top"></a><!--Start:
> >> > org.apache.myfaces.trinidad.Form["mainTemplateform1"]-->
> >> >     <form id="mainTemplateform1" name="mainTemplateform1"
> >> > style="margin:0px" method="POST" onkeypress="return
> >> > _submitOnEnter(event,'mainTemplateform1');"
> >> > action="/stp/pages/ficha/fichaProdConsulta.jsf?_afPfm=-20ad0192"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><span
> >> > id="mainTemplatepanelPage1"><table cellpadding="0" cellspacing="0"
> >> > border="0" width="100%"><tr>
> >> >               <td nowrap valign="top"><table cellpadding="0"
> >> > cellspacing="2" border="0" width="1%"><tr>
> >> >                     <td nowrap><!--Start:
> >> > org.apache.myfaces.trinidad.Object["mainTemplateobjectImage1"]--><img
> >> > id="mainTemplateobjectImage1"
> >> > name="mainTemplateobjectImage1"
> >> > src="/stp/resources/img/opensoft_logo.jpg"></td>
> >> >                   </tr><tr>
> >> >
> >> >                     <td valign="top" nowrap></td>
> >> >                   </tr></table></td>
> >> >             </tr><tr>
> >> >               <td width="100%"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><table
> >> > class="xc5" cellpadding="0" cellspacing="0" border="0"
> >> > width="100%"><tr>
> >> >                       <td height="1"></td>
> >> >                     </tr></table></td>
> >> >             </tr></table><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><!--Start:
> >> > org.apache.myfaces.trinidad.Messages["mainMessagesID"]--><span
> >> > id="mainMessagesID"></span><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><table
> >> > width="100%" border="0" cellspacing="0" cellpadding="0"><tr
> >> > valign="top">
> >> >                 <td width="100%"></td>
> >> >               </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><?xml
> >> > version='1.0' encoding='windows-1252'?>
> >> >
> >> > <div></div><!--Start:
> >> org.apache.myfaces.trinidad.Panel["j_id4"]--><table
> >> > cellpadding="0" cellspacing="0" border="0" id="j_id4"><tr>
> >> >                   <td><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id5"]--><a
> >> > id="j_id5" name="j_id5"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id5'});return
> >> > false;" class="xi" href="#">Ficha Produto
> >> > Importa&ccedil;&atilde;o</a></td>
> >> >                 </tr></table><div></div>
> >> >
> >> >
> >> >
> >> >               <h3 style="stph3"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id7"]--><span
> >> > id="j_id7">Ficha de Produto</span><div></div></h3>
> >> >
> >> >
> >> >               <h4 style="stph4"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id9"]--><span
> >> > id="j_id9" class="stph4">[ Importa&ccedil;&atilde;o
> >> > ]</span><div></div></h4>
> >> >
> >> >
> >> >                               <div
> >> align="center"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id11"]--><div id="j_id11"
> >> > class="stptable" style="width:300px"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id12"]--><table cellpadding="0"
> >> > cellspacing="0" border="0" id="j_id12" class="invisibleTable"
> >> > style="text-align: center;"><tr>
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["correntePnifa"]--><table
> >> > id="correntePnifa__xc_" class="stpinputText x1l"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >
> >> >                             <td class="x14" nowrap></td>
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><script>var
> >> > _pprUpdateMode=false;function
> >> > _adfspu(f,v,e,s,o){_pprUpdateMode=true;if(!o)o=new
> >> > Object();o.event=(e)?e:'update';if(s)o.source=s;_submitPartialChange(f,v,o);}</script><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["correntePnifa"]--><span
> >> > id="correntePnifa" class="x21">
> >> >                                 <input type="radio"
> >> name="correntePnifa"
> >> > id="correntePnifa:_0" value="0"
> >> > onclick="_adfspu('mainTemplateform1',1,'correntePnifa','correntePnifa');return
> >> > true;"><label
> >> > for="correntePnifa:_0">Corrente</label>
> >> >                                 <input type="radio"
> >> name="correntePnifa"
> >> > id="correntePnifa:_1" value="1"
> >> > onclick="_adfspu('mainTemplateform1',1,'correntePnifa','correntePnifa');return
> >> > true;"><label
> >> > for="correntePnifa:_1">PNIFA</label></span></td>
> >> >                           </tr></table></td>
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id15"]--><table
> >> > cellpadding="0" cellspacing="0" border="0" id="j_id15"
> >> > style="width: 200px;"><tr>
> >> >                       <td>
> >> >
> >> >
> >> >                         <hr style="height:1px;">
> >> >                       </td>
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id17"]--><table
> >> > cellpadding="0" cellspacing="0" border="0"
> >> > id="j_id17"><tr>
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id18"]--><span
> >> > id="j_id18" class="titleCell">C&oacute;digo
> >> > Pautal</span></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id19"]--><span
> >> > id="j_id19" class="titleCell">Ano</span></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Input["codPautal"]--><table
> >> > id="codPautal__xc_" class="fCodPautal x1e"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >                             <td class="xu" nowrap></td>
> >> >
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><!--Start:
> >> > org.apache.myfaces.trinidad.Input["codPautal"]-->
> >> >                               <input id="codPautal" name="codPautal"
> >> > class="x1p" size="30" maxlength="22"
> >> > type="text">
> >> >                             </td>
> >> >                           </tr></table></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["selectAnoPnifa"]--><table
> >> > id="selectAnoPnifa__xc_" class="stpselect x1j"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >                             <td class="x12" nowrap></td>
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><script>var
> >> > _locale='en';var
> >> > _tLocale='en';</script><script
> >> > src="/stp/adf/jsLibs/resources/LocaleElements_en11-m7.js"></script><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["selectAnoPnifa"]-->
> >> >                               <select id="selectAnoPnifa"
> >> > name="selectAnoPnifa" class="x1z">
> >> >
> >> >                                 <option value=""></option>
> >> >
> >> >                                 <option value="2006">2006</option>
> >> >
> >> >                                 <option value="2005">2005</option>
> >> >
> >> >                                 <option value="2004">2004</option>
> >> >                               </select>
> >> >                             </td>
> >> >                           </tr></table></td>
> >> >
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Object["j_id20"]--><div
> >> > id="j_id20"
> >> > style="margin-top:15px"></div></div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id21"]-->
> >> >                 <button id="j_id21" name="j_id21" type="button"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id21'});return
> >> > false;" class="fButton
> >> > x6l">Consultar</button><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id22"]-->
> >> >                 <button id="j_id22" name="j_id22" type="button"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id22'});return
> >> > false;" class="fButton x6l">Ficar</button><div></div>
> >> >
> >> >                               </div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div>
> >> >               <hr class="x98"><div class="x9a"></div><div
> >> > class="x99"></div><div
> >> > class="x9b"></div></div><div></div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div
> >> > class="x9c"><div class="x9d"><span class="x5a"><!--Start:
> >> > org.apache.myfaces.trinidad.Output["mainTemplateoutputFormatted1"]--><span
> >> > id="mainTemplateoutputFormatted1">(@VERSION@)
> >> > @VERSION-DATE@</span></span><span class="x5b"></span><span
> >> > class="x5c"></span></div></div></span>
> >> >       <input type="hidden"
> >> name="org.apache.myfaces.trinidad.faces.FORM"
> >> > value="mainTemplateform1"><span
> >> > id="_mainTemplateform1_Postscript"><input type="hidden"
> >> > name="org.apache.myfaces.trinidad.faces.STATE" value="!-20ad0192">
> >> >         <input type="hidden" name="source"><script>var
> >> > _resetmainTemplateform1Names=["source"];</script><script>var
> >> > _mainTemplateform1_Validations=['new
> >> > TrIntegerConverter(null,null,0,2147483647,-2147483648)'];function
> >> > _mainTemplateform1Validator(f,s){var fl =
> >> > _multiValidate(f,s,["selectAnoPnifa",0,,0,[]],0);if(fl.length>0){_validationAlert('Form
> >> > validation failures:'+fl);return false;}else{return true;}}var
> >> > _mainTemplateform1_Formats=['{0} - {1}'];var
> >> > mainTemplateform1_SF={};</script></span><script>_submitFormCheck();</script></form>
> >> >
> >> >   <!-- MYFACES JAVASCRIPT -->
> >> >
> >> > </body>
> >> >   <!--Created by Apache Trinidad (Apache Trinidad API -
> >> > 1.0.0-incubating/Apache Trinidad Impl - 1.0.0-incubating),
> >> > Accessibility:disabled, skin:simple.desktop (simple)--></html>
> >> >
> >> >
> >> >
> >> >
> >> > ------- RENDERED HTML (postback in said conditions) -------
> >> >
> >> > <?xml version='1.0' encoding='windows-1252'?>
> >> > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
> >> > "http://www.w3.org/TR/html4/loose.dtd"><!--Start:
> >> > org.apache.myfaces.trinidad.Html["mainTemplatehtml1"]--><html
> >> dir="ltr"
> >> > lang="en"><!--Start:
> >> > org.apache.myfaces.trinidad.Head["mainTemplatehead1"]-->
> >> >   <head id="mainTemplatehead1">
> >> >     <meta name="generator" content="Apache Trinidad">
> >> >
> >> >     <link rel="stylesheet" charset="UTF-8" type="text/css"
> >> > href="/stp/adf/styles/cache/simple-desktop-1_0_0-incubating-en-gecko.css"><script>var
> >> > _AdfWindowOpenError='A popup window blocker has been detected in your
> >> > browser. Popup blockers interfere with the operation of this
> >> > application. Please disable your popup blocker or allow popups from
> >> > this site.';</script><script
> >> > src="/stp/adf/jsLibs/Common11-m7.js"></script><script>_defaultTZ()</script>
> >> >
> >> >     <link href="/stp/resources/css/stp.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >     <link href="/stp/resources/css/calendar.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >     <link href="/stp/resources/css/stp.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >
> >> >     <link href="/stp/resources/css/calendar.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >     <link href="/stp/resources/css/stp.css" rel="stylesheet"
> >> > media="screen">
> >> >
> >> >
> >> >     <link href="/stp/resources/css/calendar.css" rel="stylesheet"
> >> > media="screen">
> >> >   </head>
> >> >   <!--Start: org.apache.myfaces.trinidad.Body["mainTemplatebody1"]-->
> >> >   <body id="mainTemplatebody1" onload="_checkLoad()"
> >> > onunload="_checkUnload(event)" class="stpbody">
> >> >     <iframe id="_pprIFrame" name="_pprIFrame" frameborder="0"
> >> longdesc="#"
> >> > title="" src="about:blank"
> >> > style="position:absolute;top:-100px;visibility:hidden" width="0"
> >> > height="0"></iframe>
> >> >     <!--Start:
> >> > org.apache.myfaces.trinidad.Body["mainTemplatebody1"]--><div
> >> > id="_pprBlockingDiv" onclick="return _pprConsumeClick(event);"
> >> > style="position:absolute;left:0;top:0;width:0;height:0;cursor:wait;"
> >> > onkeydown="return false;" onkeyup="return false;" onmousedown="return
> >> > false;" onmouseup="return false;" onkeypress="return
> >> > false;"></div><script>var _cachedLibs;</script><a
> >> > name="top"></a><!--Start:
> >> > org.apache.myfaces.trinidad.Form["mainTemplateform1"]-->
> >> >
> >> >     <form id="mainTemplateform1" name="mainTemplateform1"
> >> > style="margin:0px" method="POST" onkeypress="return
> >> > _submitOnEnter(event,'mainTemplateform1');"
> >> > action="/stp/pages/ficha/fichaProdConsulta.jsf?_afPfm=-20ad0190"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><span
> >> > id="mainTemplatepanelPage1"><table cellpadding="0" cellspacing="0"
> >> > border="0" width="100%"><tr>
> >> >               <td nowrap valign="top"><table cellpadding="0"
> >> > cellspacing="2" border="0" width="1%"><tr>
> >> >                     <td nowrap><!--Start:
> >> > org.apache.myfaces.trinidad.Object["mainTemplateobjectImage1"]--><img
> >> > id="mainTemplateobjectImage1"
> >> > name="mainTemplateobjectImage1"
> >> > src="/stp/resources/img/opensoft_logo.jpg"></td>
> >> >                   </tr><tr>
> >> >                     <td valign="top" nowrap></td>
> >> >                   </tr></table></td>
> >> >             </tr><tr>
> >> >               <td width="100%"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><table
> >> > class="xc5" cellpadding="0" cellspacing="0" border="0"
> >> > width="100%"><tr>
> >> >                       <td height="1"></td>
> >> >
> >> >                     </tr></table></td>
> >> >             </tr></table><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><!--Start:
> >> > org.apache.myfaces.trinidad.Messages["mainMessagesID"]--><span
> >> > id="mainMessagesID"></span><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><table
> >> > width="100%" border="0" cellspacing="0" cellpadding="0"><tr
> >> > valign="top">
> >> >                 <td width="100%"></td>
> >> >               </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><?xml
> >> > version='1.0' encoding='windows-1252'?>
> >> > <div></div>
> >> >
> >> >
> >> >
> >> >               <h3 style="stph3"><div></div></h3>
> >> >
> >> >
> >> >               <h4 style="stph4"><div></div></h4>
> >> >
> >> >
> >> >                               <div align="center"><div></div>
> >> >
> >> >                               </div><div></div><?xml version='1.0'
> >> encoding='windows-1252'?>
> >> >
> >> > <div></div>
> >> >
> >> >
> >> >
> >> >               <h3 style="stph3"><div></div></h3>
> >> >
> >> >
> >> >               <h4 style="stph4"><div></div></h4>
> >> >
> >> >
> >> >                               <div align="center"><div></div>
> >> >
> >> >                               </div><div></div><?xml version='1.0'
> >> encoding='windows-1252'?>
> >> > <div></div><!--Start:
> >> org.apache.myfaces.trinidad.Panel["j_id4"]--><table
> >> > cellpadding="0" cellspacing="0" border="0" id="j_id4"><tr>
> >> >                   <td><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id5"]--><a
> >> > id="j_id5" name="j_id5"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id5'});return
> >> > false;" class="xi" href="#">Ficha Produto
> >> > Importa&ccedil;&atilde;o</a></td>
> >> >                 </tr></table><div></div>
> >> >
> >> >
> >> >
> >> >               <h3 style="stph3"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id7"]--><span
> >> > id="j_id7">Ficha de Produto</span><div></div></h3>
> >> >
> >> >
> >> >
> >> >               <h4 style="stph4"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id9"]--><span
> >> > id="j_id9" class="stph4">[ Importa&ccedil;&atilde;o
> >> > ]</span><div></div></h4>
> >> >
> >> >
> >> >                               <div
> >> align="center"><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id11"]--><div id="j_id11"
> >> > class="stptable" style="width:300px"><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id12"]--><table cellpadding="0"
> >> > cellspacing="0" border="0" id="j_id12" class="invisibleTable"
> >> > style="text-align: center;"><tr>
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["correntePnifa"]--><table
> >> > id="correntePnifa__xc_" class="stpinputText x1l"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >                             <td class="x14" nowrap></td>
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><script>var
> >> > _pprUpdateMode=false;function
> >> > _adfspu(f,v,e,s,o){_pprUpdateMode=true;if(!o)o=new
> >> > Object();o.event=(e)?e:'update';if(s)o.source=s;_submitPartialChange(f,v,o);}</script><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["correntePnifa"]--><span
> >> > id="correntePnifa" class="x21">
> >> >                                 <input type="radio"
> >> name="correntePnifa"
> >> > id="correntePnifa:_0" value="0"
> >> > onclick="_adfspu('mainTemplateform1',1,'correntePnifa','correntePnifa');return
> >> > true;"><label
> >> > for="correntePnifa:_0">Corrente</label>
> >> >                                 <input type="radio"
> >> name="correntePnifa"
> >> > id="correntePnifa:_1" value="1" checked
> >> > onclick="_adfspu('mainTemplateform1',1,'correntePnifa','correntePnifa');return
> >> > true;"><label
> >> > for="correntePnifa:_1">PNIFA</label></span></td>
> >> >
> >> >                           </tr></table></td>
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id15"]--><table
> >> > cellpadding="0" cellspacing="0" border="0" id="j_id15"
> >> > style="width: 200px;"><tr>
> >> >                       <td>
> >> >
> >> >                         <hr style="height:1px;">
> >> >                       </td>
> >> >
> >> >                       <td>
> >> >
> >> >                         <hr style="height:1px;">
> >> >                       </td>
> >> >
> >> >                       <td>
> >> >
> >> >
> >> >                         <hr style="height:1px;">
> >> >                       </td>
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["j_id17"]--><table
> >> > cellpadding="0" cellspacing="0" border="0"
> >> > id="j_id17"><tr>
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id18"]--><span
> >> > id="j_id18" class="titleCell">C&oacute;digo
> >> > Pautal</span></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Output["j_id19"]--><span
> >> > id="j_id19" class="titleCell">Ano</span></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.Input["codPautal"]--><table
> >> > id="codPautal__xc_" class="fCodPautal x1e"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >                             <td class="xu" nowrap></td>
> >> >
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><!--Start:
> >> > org.apache.myfaces.trinidad.Input["codPautal"]-->
> >> >                               <input id="codPautal" name="codPautal"
> >> > class="x1p" size="30" maxlength="22"
> >> > type="text">
> >> >                             </td>
> >> >                           </tr></table></td>
> >> >
> >> >                       <td><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["selectAnoPnifa"]--><table
> >> > id="selectAnoPnifa__xc_" class="stpselect x1j"
> >> > cellpadding="0" cellspacing="0" border="0"><tr>
> >> >                             <td class="x12" nowrap></td>
> >> >
> >> >                             <td valign="top" nowrap
> >> > class="AFContentCell"><script>var
> >> > _locale='en';var
> >> > _tLocale='en';</script><script
> >> > src="/stp/adf/jsLibs/resources/LocaleElements_en11-m7.js"></script><!--Start:
> >> > org.apache.myfaces.trinidad.SelectOne["selectAnoPnifa"]-->
> >> >                               <select id="selectAnoPnifa"
> >> > name="selectAnoPnifa" class="x1z">
> >> >
> >> >                                 <option value=""></option>
> >> >
> >> >                                 <option value="2006">2006</option>
> >> >
> >> >                                 <option value="2005">2005</option>
> >> >
> >> >                                 <option value="2004">2004</option>
> >> >                               </select>
> >> >                             </td>
> >> >                           </tr></table></td>
> >> >
> >> >                     </tr></table><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Object["j_id20"]--><div
> >> > id="j_id20"
> >> > style="margin-top:15px"></div></div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id21"]-->
> >> >                 <button id="j_id21" name="j_id21" type="button"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id21'});return
> >> > false;" class="fButton
> >> > x6l">Consultar</button><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Command["j_id22"]-->
> >> >                 <button id="j_id22" name="j_id22" type="button"
> >> > onclick="submitForm('mainTemplateform1',1,{source:'j_id22'});return
> >> > false;" class="fButton x6l">Ficar</button><div></div>
> >> >
> >> >                               </div><div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div>
> >> >               <hr class="x98"><div class="x9a"></div><div
> >> > class="x99"></div><div
> >> > class="x9b"></div></div><div></div></div><!--Start:
> >> > org.apache.myfaces.trinidad.Panel["mainTemplatepanelPage1"]--><div
> >> > class="x9c"><div class="x9d"><span class="x5a"><!--Start:
> >> > org.apache.myfaces.trinidad.Output["mainTemplateoutputFormatted1"]--><span
> >> > id="mainTemplateoutputFormatted1">(@VERSION@)
> >> > @VERSION-DATE@</span></span><span class="x5b"></span><span
> >> > class="x5c"></span></div></div></span>
> >> >       <input type="hidden"
> >> name="org.apache.myfaces.trinidad.faces.FORM"
> >> > value="mainTemplateform1"><span
> >> > id="_mainTemplateform1_Postscript"><input type="hidden"
> >> > name="org.apache.myfaces.trinidad.faces.STATE" value="!-20ad0190">
> >> >         <input type="hidden" name="source"><script>var
> >> > _resetmainTemplateform1Names=["source"];</script><script>var
> >> > _mainTemplateform1_Validations=['new
> >> > TrIntegerConverter(null,null,0,2147483647,-2147483648)'];function
> >> > _mainTemplateform1Validator(f,s){var fl =
> >> > _multiValidate(f,s,["selectAnoPnifa",0,,0,[]],0);if(fl.length>0){_validationAlert('Form
> >> > validation failures:'+fl);return false;}else{return true;}}var
> >> > _mainTemplateform1_Formats=['{0} - {1}'];var
> >> > mainTemplateform1_SF={};</script></span><script>_submitFormCheck();</script></form>
> >> >
> >> >   <!-- MYFACES JAVASCRIPT -->
> >> >
> >> > </body>
> >> >   <!--Created by Apache Trinidad (Apache Trinidad API -
> >> > 1.0.0-incubating/Apache Trinidad Impl - 1.0.0-incubating),
> >> > Accessibility:disabled, skin:simple.desktop (simple)--></html>
> >> >
> >> >
> >> >> Francisco,
> >> >>
> >> >> Sure... Can you send the jsf code and the html rendered on the client
> >> >> page?
> >> >>
> >> >> -----Original Message-----
> >> >> From: Francisco Passos [mailto:francisco.passos@opensoft.pt]
> >> >> Sent: Monday, April 09, 2007 1:00 PM
> >> >> To: adffaces-user@incubator.apache.org
> >> >> Subject: RE: Keeping selectOneChoice selection
> >> >>
> >> >>
> >> >> Thank you for your hints.
> >> >>
> >> >> I will bear this in mind when I come to this situation - which will
> >> be
> >> >> soon enough.
> >> >>
> >> >> However, back to this this particular scenario where no table is
> >> >> involved,
> >> >> do you know of any way I manage to solve this problem?
> >> >>
> >> >>
> >> >>> Francisco,
> >> >>>
> >> >>> I have found that there is a fundamental problem with how
> >> >>> UINamingContainers are processed when row indexes are inserted into
> >> the
> >> >>> ids of EditableValueHolders within the container rows.
> >> >>>
> >> >>> Understanding The Problem:
> >> >>> As you may already know, tables have only columns referenced in the
> >> >>> page
> >> >>> so it can handle an almost infinite number of rows. Well, because
> >> you
> >> >>> have
> >> >>> only specified an id for a component within the table column the
> >> >>> component
> >> >>> inserts a row index reference in the holders id (via
> >> getClientRowKey()
> >> >>> in
> >> >>> a table) for each row. This ensures that each iteration of that row
> >> has
> >> >>> a
> >> >>> unique id. The problem with this is that in some cases this breaks
> >> >>> automatic setting of bean values (if they are value bound to an
> >> >>> EditableValueHolder within a row). Another issue is that
> >> >>> "selectOneChoice"
> >> >>> components in particular do not have a mechanism in place to ensure
> >> >>> that
> >> >>> a
> >> >>> submitted value that gets set on the component is one of the values
> >> >>> within
> >> >>> the internal "SelectItemList" so virtually any value can get set on
> >> it.
> >> >>> If
> >> >>> the submitted value is not in the list it adds a blank entry in the
> >> >>> drop
> >> >>> down menu- what? I have also noticed that selectOneChoice component
> >> >>> does
> >> >>> not handle value conversion like regular input text components do.
> >> >>> Semi-primitive values such as Integers, Booleans, etc. are not
> >> >>> converted
> >> >>> automatically like they are for regular input text components. I had
> >> >>> some
> >> >>> of the same issues with the "detailStamp" so I created an extended
> >> >>> table
> >> >>> component that allows only one toggled "detailStamp" at a time and
> >> >>> overrides the "getClientRowKey()" excluding row indexes for
> >> components
> >> >>> within the "detailStamp". This solution works very well, but still
> >> does
> >> >>> not address EditableValueHolders within the rows themselves. It
> >> seems
> >> >>> to
> >> >>> me that we need to reevaluate the usage of inserting row indexes
> >> into
> >> >>> ids!
> >> >>>
> >> >>> Possible Solutions:
> >> >>> The first thing I would check is that you have the
> >> valuePassThru="true"
> >> >>> to
> >> >>> ensure that its not trying to use the index as the passed value (not
> >> >>> sure
> >> >>> why anyone would want to be restricted to just an index). If want to
> >> >>> ensure that your value is never set to a value that does not exist
> >> in
> >> >>> the
> >> >>> options you can use a value change listener:
> >> >>>
> >> >>>
> >> >>>     /**
> >> >>>      * Verifies that an editable value holder event components value
> >> is a
> >> >>> valid
> >> >>>      * option. If it is not it sets it back to the old value.
> >> >>>      *
> >> >>>      * @see #getEditableValueHolderValue(EditableValueHolder)
> >> >>>      * @param event
> >> >>>      */
> >> >>>     public final void verifyValueOption(ValueChangeEvent event) {
> >> >>>             try {
> >> >>>                     if (event.getComponent() instanceof
> >> EditableValueHolder) {
> >> >>>                             EditableValueHolder valueHolder =
> >> (EditableValueHolder) event
> >> >>>                                             .getComponent();
> >> >>>                             if
> >> (!isValidSelectOption(event.getComponent(),
> >> >>> event.getNewValue()))
> >> >>> {
> >> >>>                                     // invalid option- regress to
> >> old value
> >> >>>                                     valueHolder.setValue(event.getOldValue());
> >> >>>                                     valueHolder.setSubmittedValue(event.getOldValue());
> >> >>>                             }
> >> >>>                     }
> >> >>>             } catch (Throwable e) {
> >> >>>                     log.warn("Unable to verify select value. " +
> >> e.getMessage()
> >> >>>                                     + " cause: " + e.getCause());
> >> >>>             }
> >> >>>     }
> >> >>>
> >> >>>     /**
> >> >>>      * Determines if the specified value is a valid selection option
> >> in
> >> >>> the
> >> >>>      * specified select component.
> >> >>>      *
> >> >>>      * @param component
> >> >>>      * @param value
> >> >>>      * @return is the specified value a valid select option
> >> >>>      */
> >> >>>     public static final boolean isValidSelectOption(UIComponent
> >> component,
> >> >>>                     Object value) {
> >> >>>             try {
> >> >>>                     List<SelectItem> items =
> >> SelectItemSupport.getSelectItems(
> >> >>>                                     component,
> >> SelectItemSupport.getConverter(component));
> >> >>>                     for (SelectItem item : items) {
> >> >>>                             if (item.getValue() != null &&
> >> item.getValue().equals(value)) {
> >> >>>                                     return true;
> >> >>>                             }
> >> >>>                     }
> >> >>>             } catch (Exception e) {
> >> >>>                     _LOG.warning("Unable to determine if the
> >> specified value: " + value
> >> >>>                                     + " is valid for the select
> >> component: " + component);
> >> >>>             }
> >> >>>             return false;
> >> >>>     }
> >> >>>
> >> >>>
> >> >>>
> >> >>> Probably not the most elegant solution, but nonetheless an effective
> >> >>> one
> >> >>> is to manage the submitted row index problems yourself. If nothing
> >> else
> >> >>> this will provide you with a debugging tool to determine if the row
> >> >>> index
> >> >>> references are preventing your values from getting set:
> >> >>>     /**
> >> >>>      * <p>
> >> >>>      * Gets a parameter value from the request scope by an editale
> >> value
> >> >>> holder
> >> >>>      * components id. This method will set/return the holders
> >> submitted
> >> >>> value
> >> >>>      * from the request.
> >> >>>      * </p>
> >> >>>      * <p>
> >> >>>      * The holders client id is checked against a possible matching
> >> id
> >> >>> request
> >> >>>      * parameter. The client id of the holder and the request
> >> parameter
> >> >>> matching
> >> >>>      * the hodler id may have their own row indexing (such is the
> >> case
> >> >>> with
> >> >>> a
> >> >>>      * select menu).
> >> >>>      * <ol>
> >> >>>      * <li>The client id against the request parameter</li>
> >> >>>      * <li>The client id w/o row index against the request
> >> parameter</li>
> >> >>>      * <li>The client id against the request parameter w/o row
> >> index</li>
> >> >>>      * </ol>
> >> >>>      * </p>
> >> >>>      *
> >> >>>      * @param context
> >> >>>      * @param holder
> >> >>>      * @return the parameter value
> >> >>>      */
> >> >>>     @SuppressWarnings("unchecked")
> >> >>>     public static final Object getRequestParameterByHolderId(
> >> >>>                     FacesContext context, EditableValueHolder
> >> holder) {
> >> >>>             if (log.isDebugEnabled())
> >> >>>                     log.debug("getRequestParameterForNamingContainer("
> >> + context + ','
> >> >>>                                     + holder + ")");
> >> >>>             if (holder != null && holder instanceof UIComponent) {
> >> >>>                     String clientId = ((UIComponent)
> >> holder).getClientId(context);
> >> >>>                     String clientIdWithOutRowIds =
> >> removeRowIdReferences(clientId);
> >> >>>                     String id = ((UIComponent) holder).getId();
> >> >>>                     Map<String, Object> map =
> >> context.getExternalContext()
> >> >>>                                     .getRequestParameterMap();
> >> >>>                     if (map != null && map.entrySet() != null) {
> >> >>>                             for (Map.Entry<String, Object> entry :
> >> map.entrySet()) {
> >> >>>                                     if (entry.getKey().indexOf(id)
> >> >= 0) {
> >> >>>                                             if
> >> (entry.getKey().equalsIgnoreCase(clientId)
> >> >>>                                                             ||
> >> entry.getKey().equalsIgnoreCase(
> >> >>>                                                                             clientIdWithOutRowIds)
> >> >>>                                                             ||
> >> removeRowIdReferences(
> >> >>>                                                                             entry.getKey()).equalsIgnoreCase(
> >> >>>                                                                             clientId))
> >> {
> >> >>>                                                     try {
> >> >>>                                                             setConvertedAndValidatedValue(context,
> >> >>>                                                                                             holder,
> >> entry.getValue());
> >> >>>                                                     } catch
> >> (Exception e) {
> >> >>>                                                             log.error("Unable
> >> to
> >> capture
> >> the
> >> converted
> >> "
> >> >>>                                                                             +
> >> "value
> >> for
> >> component("
> >> +
> >> holder
> >> >>>                                                                             +
> >> ")
> >> value:
> >> "
> >> +
> >> entry.getValue(),
> >> e);
> >> >>>                                                     }
> >> >>>                                                     return
> >> holder.getSubmittedValue();
> >> >>>                                             }
> >> >>>                                     }
> >> >>>                             }
> >> >>>                     }
> >> >>>             }
> >> >>>             return null;
> >> >>>     }
> >> >>>
> >> >>>     /**
> >> >>>      * Removes any row id references that may exist within the
> >> specified
> >> >>> client
> >> >>>      * id
> >> >>>      *
> >> >>>      * @param clientId
> >> >>>      * @return the client id
> >> >>>      */
> >> >>>     public static final String removeRowIdReferences(String
> >> clientId) {
> >> >>>             if (log.isDebugEnabled())
> >> >>>                     log.debug("removeRowIdReferences(" + clientId +
> >> ')');
> >> >>>             if (clientId != null) {
> >> >>>                     String[] ids = clientId.split(String
> >> >>>                                     .valueOf(NamingContainer.SEPARATOR_CHAR));
> >> >>>                     for (String id : ids) {
> >> >>>                             try {
> >> >>>                                     Integer.parseInt(id);
> >> >>>                             } catch (Exception e) {
> >> >>>                                     continue;
> >> >>>                             }
> >> >>>                             clientId =
> >> clientId.replace(NamingContainer.SEPARATOR_CHAR
> >> + id
> >> >>>                                             +
> >> NamingContainer.SEPARATOR_CHAR,
> >> String
> >> >>>                                             .valueOf(NamingContainer.SEPARATOR_CHAR));
> >> >>>                     }
> >> >>>             }
> >> >>>             return clientId;
> >> >>>     }
> >> >>>
> >> >>>     /**
> >> >>>      * Invokes the internal converter/validators(s) for an editable
> >> value
> >> >>> holder
> >> >>>      * and returns the converted value
> >> >>>      *
> >> >>>      * @param context
> >> >>>      * @param holder
> >> >>>      * @param value
> >> >>>      * @return the converted value
> >> >>>      * @throws ValidatorException
> >> >>>      * @throws EvaluationException
> >> >>>      * @throws MethodNotFoundException
> >> >>>      */
> >> >>>     public static final Object
> >> setConvertedAndValidatedValue(FacesContext
> >> >>> context,
> >> >>>                     EditableValueHolder holder, Object value)
> >> >>>                     throws ValidatorException, EvaluationException,
> >> >>>                     MethodNotFoundException {
> >> >>>             if (holder != null) {
> >> >>>                     if (holder.getConverter() != null) {
> >> >>>                             value =
> >> holder.getConverter().getAsObject(context,
> >> >>>                                             (UIComponent) holder,
> >> >>>                                             value != null ?
> >> value.toString() :
> >> null);
> >> >>>                     }
> >> >>>                     if (holder instanceof UIComponent) {
> >> >>>                             if (holder.getValidators() != null) {
> >> >>>                                     for (Validator v :
> >> holder.getValidators()) {
> >> >>>                                             v.validate(context,
> >> (UIComponent) holder,
> >> value);
> >> >>>                                     }
> >> >>>                             }
> >> >>>                     }
> >> >>>                     if (holder.getValidator() != null) {
> >> >>>                             holder.getValidator().invoke(context,
> >> new Object[] { value });
> >> >>>                     }
> >> >>>                     holder.setSubmittedValue(value);
> >> >>>                     return value;
> >> >>>             }
> >> >>>             return null;
> >> >>>     }
> >> >>>
> >> >>> -----Original Message-----
> >> >>> From: Francisco Passos [mailto:francisco.passos@opensoft.pt]
> >> >>> Sent: Monday, April 09, 2007 11:17 AM
> >> >>> To: William Hoover
> >> >>> Subject: RE: Keeping selectOneChoice selection
> >> >>>
> >> >>>
> >> >>> No, it is in a facet for a panelPage.
> >> >>>
> >> >>> In it, I have a panelGroupLayout, then a panelHorizontalLayout and
> >> >>> finally
> >> >>> in it the panelPage.
> >> >>>
> >> >>> If you feel it's best, I can attach the code or paste it in the mail
> >> >>> body.
> >> >>>
> >> >>> Either way, if the selectOneChoice were in a table (something I will
> >> >>> surely need), what would the solution be?
> >> >>>
> >> >>> Thank you,
> >> >>>
> >> >>> Francisco
> >> >>>
> >> >>>
> >> >>>
> >> >>>> Francisco,
> >> >>>>
> >> >>>> Is your selectOneChoice in a table?
> >> >>>>
> >> >>>> -----Original Message-----
> >> >>>> From: Francisco Passos [mailto:francisco.passos@opensoft.pt]
> >> >>>> Sent: Monday, April 09, 2007 10:55 AM
> >> >>>> To: adffaces-user@incubator.apache.org
> >> >>>> Subject: Keeping selectOneChoice selection
> >> >>>>
> >> >>>>
> >> >>>> Hello there.
> >> >>>>
> >> >>>> I'm new to JSF and Trinidad, so please bear with my simplistic
> >> doubts.
> >> >>>>
> >> >>>> I'm struggling to keep a selectOneChoice selection upon a postback
> >> >>>> using
> >> >>>> a
> >> >>>> request-scoped bean.
> >> >>>>
> >> >>>> At first I couldn't even maintain the values in the list, but I
> >> found
> >> >>>> that
> >> >>>> placing a h:inputHidden on the page and declaring its value to be
> >> >>>> #{myBean.valueList}, they could be kept. Furthermore I've tested
> >> the
> >> >>>> seme
> >> >>>> using pageFlow and it worked.
> >> >>>>
> >> >>>> However, I cannot keep the selected value in the dropdown list, it
> >> >>>> just
> >> >>>> resets.
> >> >>>>
> >> >>>> What is the correct way to do this simple task without using
> >> session
> >> >>>> beans?
> >> >>>>
> >> >>>> Thank you for your time and attention,
> >> >>>>
> >> >>>> Francisco Passos
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>> Francisco Passos
> >> >>> Opensoft - Soluções Informáticas, Lda
> >> >>> Telemóvel:  +351 91 238 52 76
> >> >>> Escritório: +351 21 380 44 10
> >> >>> Email:      francisco.passos@opensoft.pt
> >> >>>
> >> >>>
> >> >>>
> >> >>
> >> >>
> >> >> Francisco Passos
> >> >> Opensoft - Soluções Informáticas, Lda
> >> >> Telemóvel:  +351 91 238 52 76
> >> >> Escritório: +351 21 380 44 10
> >> >> Email:      francisco.passos@opensoft.pt
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> > Francisco Passos
> >> > Opensoft - Soluções Informáticas, Lda
> >> > Telemóvel:  +351 91 238 52 76
> >> > Escritório: +351 21 380 44 10
> >> > Email:      francisco.passos@opensoft.pt
> >> >
> >> >
> >> >
> >>
> >>
> >>
> >>
> >
>
>
> Francisco Passos
> Opensoft - Soluções Informáticas, Lda
> Telemóvel:  +351 91 238 52 76
> Escritório: +351 21 380 44 10
> Email:      francisco.passos@opensoft.pt
>
>

Mime
View raw message