Thank you once more. I'm not sure I understood the advice you just game me.
Considering this: <tr:selectOneChoice id="selectAnoPnifa" binding="#{fichaBean.anoPnifa}" value="#{fichaBean.anoPnifaSeleccionado}" valuePassThru="true"> Are you recommending me to place anoPnifa in pageFlowScope? Or anoPnifaSeleccionado? And if so, can or should it be done like this? public String getAnoPnifaSeleccionado() { RequestContext context = RequestContext.getCurrentInstance(); this.anoPnifaSeleccionado = (String) context.getProcessScope().get("anoPnifaSeleccionado"); return anoPnifaSeleccionado; } public void setAnoPnifaSeleccionado(String anoPnifaSeleccionado) { this.anoPnifaSeleccionado = anoPnifaSeleccionado; RequestContext context = RequestContext.getCurrentInstance(); context.getProcessScope().put("anoPnifaSeleccionado", this.anoPnifaSeleccionado); } Francisco Passos > 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:[EMAIL PROTECTED] > 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:[EMAIL PROTECTED] >> 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çã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çã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ó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çã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çã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ó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:[EMAIL PROTECTED] >>> 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:[EMAIL PROTECTED] >>>> 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:[EMAIL PROTECTED] >>>>> 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: [EMAIL PROTECTED] >>>> >>>> >>>> >>> >>> >>> Francisco Passos >>> Opensoft - Soluções Informáticas, Lda >>> Telemóvel: +351 91 238 52 76 >>> Escritório: +351 21 380 44 10 >>> Email: [EMAIL PROTECTED] >>> >>> >>> >> >> >> Francisco Passos >> Opensoft - Soluções Informáticas, Lda >> Telemóvel: +351 91 238 52 76 >> Escritório: +351 21 380 44 10 >> Email: [EMAIL PROTECTED] >> >> >> > > > > Francisco Passos Opensoft - Soluções Informáticas, Lda Telemóvel: +351 91 238 52 76 Escritório: +351 21 380 44 10 Email: [EMAIL PROTECTED]