Managed Bean attribute as Partial Trigger

Hi all,
I have a delete icon on my table, which needs to be enabled based on the condition.
An attribute in the managed bean reflects that condition.
Can i add this managed bean attribute as the partial trigger to my Delete icon?
PS: I have tried the same with no success. Wondering if this is a right way to proceed!
Thanks,
Raghu

Hi,
You can follow following steps.
1. Register the managed bean in adfc-config.xml.... is you hav'nt done yet.
2. create set and get methods for the attribute in the managedbean, you can write your logic in the get method of the attribute
3. the button should be enabled and disabled based on the condition...
you can set the disabled property of button to boolean value or the elexpresson that evaluates to the boolean result.
For example the button should be disabled when the attribute value is 'M' then you can do the following.
disabled="#{myBean.myAttribute=='M'}"Hope this helps..
Regards,
Santosh.

Similar Messages

  • How to call partial trigger on JSFF component from separate managed bean?

    Guys and Gals,
    Using JDev 11.1.1.2.0. Looked on the forums and google. Initial results aren't so great.
    Is it possible to call a PPR on a JSFF component from a separate managed bean? It seems calling the FacesContext in this instance calls the root JSPX, which only contains one child: the RichDocument.
          UIComponent component =
             FacesContext.getCurrentInstance().getViewRoot().findComponent("pc1:table1");
          if (component != null)
             AdfFacesContext context = AdfFacesContext.getCurrentInstance();
             context.addPartialTarget(component);
          System.out.println(FacesContext.getCurrentInstance().getViewRoot().getChildCount());Returns 1 :(
    Ideas for a workaround?
    Edited by: LovettWB on Nov 17, 2010 3:39 AM
    Edited by: LovettWB on Nov 17, 2010 4:11 AM
    Edited by: LovettWB on Nov 17, 2010 4:12 AM

    Thanks! Joonas, you've been a great help.
    The code on the page you referenced was close, but the code on a page referenced in the user comments was even better:
    http://www.jroller.com/mert/entry/how_to_find_a_uicomponent
    My region is located in a facet, which the page you posted doesn't quite cover, but the page above fixed that. Here's the fix below:
    In Managed Bean
          // search for the region ID (or task flow) in the base page
          UIComponent base = jsfUtils.findComponentInRoot("dynamicRegion");
          // now find component ID from within that region
          UIComponent partTable = jsfUtils.findComponent(base, "partTable");
          // call PPR on your found component
          AdfFacesContext.getCurrentInstance().addPartialTarget(partTable);In JSFUtils utility class
       // used to locate region.  Could also find any component
       // located in the base ViewRoot()
       public static UIComponent findComponentInRoot(String id) {
        UIComponent component = null;
        FacesContext facesContext = FacesContext.getCurrentInstance();
        if (facesContext != null) {
          UIComponent root = facesContext.getViewRoot();
          component = findComponent(root, id);
        return component;
        // Recursive method which finds your component within JSFF
        // regardless of facet or other UIComponents which may have children
    public static UIComponent findComponent(UIComponent base, String id) {
        if (id.equals(base.getId()))
          return base;
        UIComponent kid = null;
        UIComponent result = null;
        Iterator kids = base.getFacetsAndChildren();
        while (kids.hasNext() && (result == null)) {
          kid = (UIComponent) kids.next();
          if (id.equals(kid.getId())) {
            result = kid;
            break;
          result = findComponent(kid, id);
          if (result != null) {
            break;
        return result;
    }Good stuff to know!

  • Trigger click event on RichLink from Managed Bean

    I want to fire a click event from a managed bean of a RichLink which has a clientListener of click type.
    For this, I have tried many options, but nothing works.
    My problem is that the RichLink doesn't have action and actionListener properties, then I couldn't launch ActionEvent, since doesn't exists.
    I have tried few options:
    //NOT WORKS
    public void option1() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                        "link.click();";
      addJavaScript(script;)
    //NOT WORKS
    public void option2() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                      "link.queueEvent('click');";
      addJavaScript(script;)
    //NOT WORKS
    public void option3() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                      "AdfCustomEvent.queue(link, "tooglePanelSplitter",{}, false);";
      addJavaScript(script;)
    //WORKS -> DOM EVENTS, NOT ADF
    public void option4() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = document.getElementById('"+linkF11.getClientId()+"');" +
                      "link.click();";
      addJavaScript(script;)
    private void addJavaScript(String script) {
      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExtendedRenderKitService service = (ExtendedRenderKitService) Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
      service.addScript(facesContext, script);
    Finally, I could find a solution, but I have read that, we should avoid call javascript standard code in ADF.
    jsf code
    <af:link text="Modo Comp." id="cil2"
      partialSubmit="true" styleClass="icon-list-alt"
      shortDesc="Modo Compatibilidad"
      clientComponent="true">
      <af:clientAttribute name="psId" value="#{myBean.psF11.clientId}"/>
      <af:clientListener method="tooglePanelSplitter" type="click"/>
    </af:link>
    javascript code
    function tooglePanelSplitter(event) {
        var psId = event.getSource().getProperty('psId');
        comp = AdfPage.PAGE.findComponent(psId);
        if (comp) {
            comp.setProperty("collapsed", !comp.getProperty("collapsed"));
        }  else {
            alert('not found');
    PS: jdeveloper 12c (12.1.2.0.0)

    I wanted to fire the ClientListener from a managed bean, but finally I have solved executing a new javascript code from managed bean.
    In my first javascript code, I toggle the position of a panelSplitter, and in this new code, I set the position to not collapsed.
    //SOLUTION
    public void option4() {
      String psId = ztBean.getPsF11().getClientId();
      String script = "var psl = document.getElementById('"+psId+"');" +
                      "psl.setCollapsed(false);";
      addJavaScript(script);
    private void addJavaScript(String script) {
      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExtendedRenderKitService service = (ExtendedRenderKitService) Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
      service.addScript(facesContext, script);

  • How to make Partial Trigger work for a SelectManyShuttle

    Hi,
    I'm developing a page for user role management. For each role, one or more menus could be assigned to it. We have 3 db table, Role, Menu and RoleMenu. RoleMenu is the intersection table.
    At UI level, I placed one editable table on the top of a page, and put a SelectManyShuttle below the table.
    I developed a backing bean for the SelectManyShuttle to get all menus and selectedMenus for the current row in the table.
    The Shuttle can display selectedMenu for the first row of the Role table, but it can't update when I select another row. It seems the partial trigger is not working.
    Below are the codes:
      <af:selectManyShuttle value="#{ pageFlowScope.RoleManagementBean.selectedValues}"
                    leadingDescShown="true" size="8"
                                  trailingDescShown="true"
                                  inlineStyle="background-color:transparent; width:100%;"
                                          binding="#{pageFlowScope.RoleManagementBean.menuSelectShuttle}">
                      <f:selectItems value="#{ pageFlowScope.RoleManagementBean.allItems}"/>
      </af:selectManyShuttle>
    * Implements the basic backing-bean mechanics to handle page with shuttle.
    * By injecting managed properties into the properties of this bean
    * you can setup the shuttle data binding declaratively.
    public class RoleManagementBean {
        String beanName = "RoleManagementBean";
        String allItemsIteratorName;
        String allItemsValueAttrName;
        String allItemsDisplayAttrName;
        String allItemsDescriptionAttrName;
        String selectedValuesIteratorName;
        String selectedValuesValueAttrName;
        List selectedValues;
        List allItems;
        private boolean refreshSelectedList = false;
        private RichSelectManyShuttle menuSelectShuttle;
        public RoleManagementBean() {
        private OperationBinding findOperationBinding(String pOperationBindingName) {
            BindingContainer bindings = ADFUtils.getBindingContainer();
            OperationBinding operation =
                bindings.getOperationBinding(pOperationBindingName);
            return operation;
         * Setter for 'allItemsIteratorName' property.
         * @param allItemsIteratorName Name of the iterator for all items in the list
        public void setAllItemsIteratorName(String allItemsIteratorName) {
            this.allItemsIteratorName = allItemsIteratorName;
         * Getter for 'allItemsIteratorName' property.
         * @return Name of the iterator to use for all items in the list
        public String getAllItemsIteratorName() {
            return allItemsIteratorName;
         * Set allItems value attribute name.
         * @param allItemsValueAttrName name of attr to use as value of all items list
        public void setAllItemsValueAttrName(String allItemsValueAttrName) {
            this.allItemsValueAttrName = allItemsValueAttrName;
         * Get allItems value attribute name.
         * @return name of attr to use as value of all items list
        public String getAllItemsValueAttrName() {
            return allItemsValueAttrName;
         * Setter for 'allItemsDisplayAttrName' property.
         * @param allItemsDisplayAttrName attr to use for display in all items list
        public void setAllItemsDisplayAttrName(String allItemsDisplayAttrName) {
            this.allItemsDisplayAttrName = allItemsDisplayAttrName;
         * Getter for 'allItemsDisplayAttrName' property.
         * @return attr to use for display in all items list
        public String getAllItemsDisplayAttrName() {
            return allItemsDisplayAttrName;
         * Setter for 'allItemsDescriptionAttrName' property.
         * @param allItemsDescriptionAttrName attrib for description in all items list
        public void setAllItemsDescriptionAttrName(String allItemsDescriptionAttrName) {
            this.allItemsDescriptionAttrName = allItemsDescriptionAttrName;
         * Getter for 'allItemsDescriptionAttrName' property.
         * @return attrib for description in all items list
        public String getAllItemsDescriptionAttrName() {
            return allItemsDescriptionAttrName;
         * Setter for 'selectedValuesIteratorName' property.
         * @param selectedValuesIteratorName name of iterator for selected values
        public void setSelectedValuesIteratorName(String selectedValuesIteratorName) {
            this.selectedValuesIteratorName = selectedValuesIteratorName;
         * Getter for 'selectedValuesIteratorName' property.
         * @return name of iterator for selected values
        public String getSelectedValuesIteratorName() {
            return selectedValuesIteratorName;
         * Setter for 'selectedValuesValueAttrName' property.
         * @param selectedValuesValueAttrName name of attr to use for selected value
        public void setSelectedValuesValueAttrName(String selectedValuesValueAttrName) {
            this.selectedValuesValueAttrName = selectedValuesValueAttrName;
         * Getter for 'selectedValuesValueAttrName' property.
         * @return name of attr to use for selected value
        public String getSelectedValuesValueAttrName() {
            return selectedValuesValueAttrName;
         * Setter for 'selectedValues' property.
         * @param selectedValues List of selected values in shuttle
        public void setSelectedValues(List selectedValues) {
            this.selectedValues = selectedValues;
         * Event handler for shuttle value change event.
         * @param event value change event
        public void refreshSelectedList(ValueChangeEvent event) {
            refreshSelectedList = true;
         * Getter for 'selectedValues' property.
         * @return List of selected values in shuttle
        public List getSelectedValues() {
            if (selectedValues == null || refreshSelectedList) {
                System.out.println("here");
                selectedValues =
                        ADFUtils.attributeListForIterator(selectedValuesIteratorName,
                                                          selectedValuesValueAttrName);
            return selectedValues;
         * Setter for 'allItems' property.
         * @param allItems list of SelectItem representing all items in available list
        public void setAllItems(List allItems) {
            this.allItems = allItems;
         * Getter for 'allItems' property.
         * @return list of SelectItem representing all items in available list
        public List getAllItems() {
            if (allItems == null) {
                allItems =
                        ADFUtils.selectItemsForIterator(allItemsIteratorName, allItemsValueAttrName,
                                                        allItemsDisplayAttrName,
                                                        allItemsDescriptionAttrName);
            return allItems;
        public void setMenuSelectShuttle(RichSelectManyShuttle menuSelectShuttle) {
            this.menuSelectShuttle = menuSelectShuttle;
        public RichSelectManyShuttle getMenuSelectShuttle() {
            return menuSelectShuttle;
    }I guess the partial trigger is not working because the binding of the shuttle is not relative to the binding of the role table.
    any help will be appreciated!
    thanks!
    Gene

    My problem is solved, after I removed the if statement at the backing bean getSelectedValues() method
    public List getSelectedValues() {
        //    if (selectedValues == null || refreshSelectedList) {
       //         System.out.println("here");
                selectedValues =
                        ADFUtils.attributeListForIterator(selectedValuesIteratorName,
                                                          selectedValuesValueAttrName);
            return selectedValues;
        }

  • Error while opening a popup from managed bean

    Hi,
    I am trying to open a popup from bean, after another popup is closed. When I open the second popup either through ActionListener(on first popup button) or DialogListener(on first popup), I am getting the below error on browser status bar(!); and the second popup doesn't open. There is no error in the log.
    *'AdfPage.PAGE.findComponent(...)' is null or not an object.*
    Although the popup id is there on the jspx page.
    <af:popup id="confirmationStatus" binding="#{MyBean1.confirmationStatus}">
    <af:dialog cancelVisible="false"
    closeIconVisible="false" binding="#{MyBean1.d2}"
    title="Appointment Confirmation Status">
    <af:outputText value="Appointment is successfully confirmed"/>
    </af:dialog>
    </af:popup>
    public void confirmAppointment_dialogListener(DialogEvent dialogEvent) {
    FacesContext context = FacesContext.getCurrentInstance();
    ExtendedRenderKitService service = Service.getRenderKitService(context, ExtendedRenderKitService.class);
    String popupId = "confirmationStatus";
    service.addScript(context,"AdfPage.PAGE.findComponent('" + popupId + "').show();");
    Please tell me why my popup is not getting open from the managed bean and I am getting an error in below line.
    service.addScript(context,"AdfPage.PAGE.findComponent('" + popupId + "').show();");

    To find out the right address of a component related to an other component, open your page select the component you want to add a partial trigger, go to the partial trigger property, select the down arrow at the right end and select 'Edit'. Now look for the popup in the component tree shown on the left side. When you have found the popup shuffle it the the selected side and click OK. The string you see in the field is the full address of the popup related to he component you've selected. Try the string you see there in your bean code. Remove the string from the partial trigger property, it's just to get the correct path.
    One other thing to check is that your popup has the ClientComponent property set to true.
    Next thing to try, is to use AdfPage.PAGE.findComponentByAbsoluteId(...)
    Timo

  • Changing row selection of a af:table component in a managed bean

    Hi,
    how can ich programmatically change the selected row of a <af:table> component within a managed bean class?
    I have a table which depends on the date settings of a <dvt:timeSelector> of a <dvt:lineGraph> component. Now when the timeSelector is moved to new dates the table should be refreshed by executing the query for the table again with the new dates. The problem is when the query of the table's view object is executed again the first row will be automatically selected after executing.
    Now I want to achieve that the last row I have selected will be selected again after moving the time selector.
    I searched already in the OTN Discussion Forum but didn't find a fitting solution.
    Thanks in advance!

    The problem is that executing the query moves the current roe to the first one.
    What you can do is to save the current row (its pk), execute the query and then set the current row to the pk of the saved selected one. Set the table attribute displayRow="selected" and set the selected row of the table to the now current row.
    One problem is that you have to be sure the last selected row is still in the record set of the new query result.
    Here are some pointers with code:
    Keep the scroll position on partial commit in <af:table>
    Jdev 11G ADF BC: rollback and keeping current row problem
    How can I programmatically select row to edit in ADF - 11g
    Timo

  • How to set partial trigger of the component which is in different Page Fragements

    I want to set the partial trigger of a ADF control which is in different page fragment.
    Would you please help me regarding this.

    Hi,
    so fragments on a page are within regions and your requirement is to refresh a component in region A in response to an action on a component in region B. If this is correct, then the choice is
    1. use contextual events
    2. use a managed bean that is injected to region B to notify the parent page (manged bean in view scope) about a component change. Now this parent page can refresh the region B container performing e.g. a PPR or a full refresh
    Frank

  • How to make one-option dropdown list partial trigger?

    There are two dependent dropdown lists. when list one is selected, the other one will get the SelectItems according the value of list one. My question is: when there is only one selectiem in list one (and the hint 'Please select one..."), how to make it partial trigger in the second time? e.g. I first login and select the ONLY one choice in List one, and the List two gets the values. but the data in datasource updated, so I want to choose the List one again, and make the List two get the new values.

    Hi,
    create a JSF binding (Bindings property on the list component) to a managed bean. The in the code that would trigger the PPR, call
    AdfFacesContext.getCurrentInstance().addPartialtarget(theListBindingName);
    If you have a refresh button, then you could use declarative PPR
    Frank

  • Initialize managed bean from request parameters

    Hi:
    I thought this topic would be on the FAQ, but I couldn't find it. I am looking for a mean to initialize my managed bean from the query string. There must be something like:
    <h:form initializeBean=""true"" requestParameter=""id_author"" beanProperty=""#{author.id_author}"" action=""#{author.getFromDB}"" >
    </form>
    The url would be something like http://localhost:8080/protoJSF/showAuthor.jsf?id_author=5334
    And the getFromDB method would be something like
      Public void getFromDB()
         Statement stmt = cn.createStatement( ?SELECT * from author where id_author=? + getId_author() );
         ResultSet rs = stmt.executeQuery();
      }The only way I've found to perform something like this is to present a blank author form with a ''load data'' button: after pressing the button the user can see author's data and edit the data if she wants to. This two-step data screening is annoying, to say the least.
    There must be a better way.
    I beg for a pointer on how can I achieve the initializing of a managed bean with dynamic data.
    Regards
    Alberto Gaona

    You just have to read carefully the very fun 289 pages
    specification :-)Or, if 289 pages of JavaServer Faces is too much, you can get almost all of the same information from the JavaServer Pages 2.0 specification, or even the JSP Standard Tag Libraries specification :-).
    More seriously, the standard set of "magic" variable names that JavaServer Faces recognizes is the same as that reognized by the EL implementations in JSP and JSTL. Specifically:
    * applicationScope - Map of servlet context attributes
    * cooke - Map of cookies in this request
    * facesContext - The FacesContext instance for this request
    * header - Map of HTTP headers (max one value per header name)
    * headerValues - Map of HTTP headers (String array of values per header name)
    * initParam - Map of context initialization parameters for this webapp
    * param - Map of request parameters (max one value per parameter name)
    * paramMap - Map of request parameters (String array of values per parameter name)
    * requestScope - Map of request attributes for this request
    * sessionScope - Map of session attributes for this request
    * view - The UIViewRoot component at the base of the component tree for this view
    If you use a simple name other than the ones on this list, JavaServer Faces will search through request attributes, session attributes, and servlet context (application) attributes. If not found, it will then try to use the managed bean facility to create and configure an appropriate bean, and give it back to you.
    For extra fun, you can even create your own VariableResolver that can define additional "magic" variable names known to your application, and delegate to the standard VariableResolver for anything else.
    Craig McClanahan

  • How to set ADF table cell value in managed bean

    Hi all,
    I have an ADF table on my page, let's assume with three columns with Input text box: col A, col B and col C where column C is hidden, when I click on Submit is possible to set in managed bean the value of column C for each rows?
    Thk in advance.
    L-

    Hi,
    you can create a button with an ActionListener. In the ActionListener you can iterate over the rows (using the iterator) and set the value on the attribute. If you need to save the changes you can call the commit operation binding.
    Linda

  • How to set hidden value in managed bean?

    Hi
    I have the following :
                           <a4j:commandButton
                                          id="commandButton3"
                                          action="#{backing_CustSearchBean.serchCustomer}"
                                          image="images/btn_search.gif"
                                          style="position: relative; margin-right: 5px;"
                                          actionListener="#{backing_CustSearchBean.checkText}"
                                          immediate="true"
                                          status="wait"
                                          oncomplete="showQuickCreate()"
                                          >  
                                <h:inputHidden id="jsfHidden" binding="#{backing_CustSearchBean.jsfHidden}" />
                                  <a4j:status id="wait">
                                    <f:facet name="start" >
                                      <h:graphicImage url="images/SpinGear2.gif" style="position: absolute; left: 378px; top: 216px; width: 19px; height: 18px;"/>
                                    </f:facet>
                                  </a4j:status>
                     </a4j:commandButton>when the action goes in the managed bean I want to set the value of hidden parameter "jsfHidden" in managed bean and catch it in showQuickCreate (oncomplete="showQuickCreate()" ) javascript function on return to the page.
    Please help, how should I do it?

    I know nothing about a4j, but if you want to pass new parameters from JSF to the backing bean, then use f:param for commandlinks or f:attribute for commandbuttons.
    The h:inputHidden just saves backing bean properties from request to request. You can't set or change it from within the JSF.
    Not sure if the f:attribute will work for the a4j commandbutton (check if they have a support forum at their website?)
    Also see http://balusc.xs4all.nl/srv/dev-jep-com.html about passing parameters and accessing objects and beans in the facescontext.

  • Disabling a checkbox which is in a table, from managed bean

    disabling a checkbox which is in a table, from managed bean -
    i am able to iterate table and get/set value of checkbox but i want to disable it, how can i do that?
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Application app = facesContext.getApplication();
    ExpressionFactory elFactory = app.getExpressionFactory();
    ELContext elContext = facesContext.getELContext();
    ValueExpression valueExp = elFactory.createValueExpression(elContext, "#{bindings}", Object.class);
    DCBindingContainer bindings = (DCBindingContainer) valueExp.getValue(elContext);
    DCIteratorBinding iter = bindings.findIteratorBinding("dogsIterator");
    RowSetIterator rit = iter.getRowSetIterator();
    rit.reset();
    while(rit.hasNext()) {
    Row currentRow = rit.next();
    Attribute attr = (Attribute)row.getAttribute("checked");
    what code should come here to disable checkbox?
    rit.closeRowSetIterator();
    thanks.

    Wes Fang wrote:
    You might find it easier to simply use EL and evaluate that value on the disable property:
    <af:column ...>
    <af:selectBooleanCheckbox ... disabled="#{row.bindings.checked.inputValue==YOUR_DISABLE_VALUE?true:false}"/>
    </af:column>
    i used this approach.
    kept a bean in session and used it's property in disabled attribute - now setting this property in my bean...

  • Accessing the ViewRowImpl in Managed Bean

    Hi,
    I am having the requiredment like setting the data to view object based on some conditions. Here after setting the data to a view object, i dont want to make my transaction as dirty, so am using the populateAttribute. since am setting the single attribute am planing to get the ViewRowImpl and want set the data in my managed bean instead of writing the service method in viewImpl.
    is it the good approach to get the viewRowImpl in managed Bean.. Please suggest...
    Reg,
    Brahma B.

    Hi Frank Thanks for your reply...
    Here i will create a record before loading the screen in add mode for accepting the user input. after creation of the record i will set some data programatically(the data may be usefull for dropdown which i attached to the a perticular column).
    Reg,
    Brahma B.

  • JSF - Best Practice For Using Managed Bean

    I want to discuss what is the best practice for managed bean usage, especially using session scope or request scope to build database driven pages
    ---- Session Bean ----
    - In the book Core Java Server Faces, the author mentioned that most of the cases session bean should be used, unless the processing is passed on to other handler. Since JSF can store the state on client side, i think storing everything in session is not a big memory concern. (can some expert confirm this is true?) Session objects are easy to manage and states can be shared across the pages. It can make programming easy.
    In the case of a page binded to a resultset, the bean usually helds a java.util.List object for the result, which is intialized in the constructor by query the database first. However, this approach has a problem: when user navigates to other page and comes back, the data is not refreshed. You can of course solve the problem by issuing query everytime in your getXXX method. But you need to be very careful that you don't bind this XXX property too many times. In the case of querying in getXXX, setXXX is also tricky as you don't have a member to set. You usually don't want to persist the resultset changes in the setXXX as the changes may not be final, in stead, you want to handle in the actionlistener (like a save(actionevent)).
    I would glad to see your thought on this.
    --- Request Bean ---
    request bean is initialized everytime a reuqest is made. It sometimes drove me nuts because JSF seems not to be every consistent in updating model values. Suppose you have a page showing parent-children a list of records from database, and you also allow user to change directly on the children. if I hbind the parent to a bean called #{Parent} and you bind the children to ADF table (value="#{Parent.children}" var="rowValue". If I set Parent as a request scope, the setChildren method is never called when I submit the form. Not sure if this is just for ADF or it is JSF problem. But if you change the bean to session scope, everything works fine.
    I believe JSF doesn't update the bindings for all component attributes. It only update the input component value binding. Some one please verify this is true.
    In many cases, i found request bean is very hard to work with if there are lots of updates. (I have lots of trouble with update the binding value for rendered attributes).
    However, request bean is working fine for read only pages and simple binded forms. It definitely frees up memory quicker than session bean.
    ----- any comments or opinions are welcome!!! ------

    I think it should be either Option 2 or Option 3.
    Option 2 would be necessary if the bean data depends on some request parameters.
    (Example: Getting customer bean for a particular customer id)
    Otherwise Option 3 seems the reasonable approach.
    But, I am also pondering on this issue. The above are just my initial thoughts.

  • PLZ Help: how to get value of a request scoped Bean/Attribute in JSF ?!!!

    hi,
    I noticed this part of code to retrieve session scoped beans/vars in an ActionListener or other jsf classes, but it does not work for request scoped beans/vars :( what's the problem then ? what shall i do ?
    Type var = (Type)Util.getValueBinding("myBeanInRequest")).getValue(context);
    I have also set that getPhaseId() returns UPDATE_MODEL_VALUES or APPLY_REQUEST_VALUES.
    Any comment or idea ?

    I have declared my Bean in my JSP page not in the
    faces-config.xml. Does this make any problem ? Also I
    have tried the way you told me as well, but still the
    returned attribute is null.
    P.S. My bean is declared in my JSP page this way:
    <jsp:useBean id="newSurveyVar" class="SurveyModel"
    scope="request" />
    This declaration causes the SurveyModel instance to be created in request scope when the page is rendered, but that doesn't help you when the form is submitted -- that is going to happen on the next request (so the request attribute created here goes away). Basically, <jsp:useBean> is not typically going to be useful for request scope attributes (it's ok for session or application scope, though).
    and further I have this jsf code:
    <h:command_button label="Create" commandName="create"
    action="create" >
    <f:action_listener
    r type="CreateNewSurveyActionListener"/>
    </h:command_button>
    and this is my
    CreateNewSurveyActionListener.processAction(ActionEvent
    e) {
    if (actionCommand.equals("create_the_survey")) {
    FacesContext context =
    t = FacesContext.getCurrentInstance();
    SurveyModel survey =
    y =
    (SurveyModel)(Util.getValueBinding("newSurveyVar")).get
    alue(context);
    if (survey==null) // returns true :(((
    And since I've declared my beans here there is nothing
    special declared in my faces-config.xml
    For me again it is really strange why it is not
    working !!!
    Any idea ? Because the event listener is fired in a separate request, so the one you created in the page is gone.
    This is why the managed bean creation facility was created. If your component contains a valueRef that points at the bean name (or you evaluate a ValueBinding as illustrated earlier in the responses to your question), then the bean will get instantiated during the processing of the form submit.
    Craig McClanahan

Maybe you are looking for

  • Logical Agregated Column with formula

    Hi all, I need to create an agregated column of a field that have a formula. I know you haven't understood anything so here is an example :) Source Table: A B C 001 'ZZ' 'ZZ' 001 'ZZ' 'ZZ' 001 'ZZ' 'YY' 002 'XX' 'TT' 003 'JJ' 'JJ' Desired Result: (E

  • ITunes cutting off songs

    I have a music collection over 60 Gig on iTunes and I have been noticing lately that certain songs just cut off in the middle and skip to the next song. Now when I go back to the song that skipped I try to play it to the part it skipped and it is com

  • Is it possible to rollback image copy backup?

    Hi, I have got an image copy with a tag which I apply incremental backups everyday. The image copy is rolled forward everyday. Is it possible to rollback the image copy? I have got incremental backups of everyday and one recent full image copy of dat

  • Calculating values across multiple years

    Hi, I have a stored procedure that has 10 rows for each of the last 10 years and about 25 columns for various different values for each given year. I need to create a report that shows all the values (columns) for only year 3, year 7, and year 10.  M

  • Change of language in Windows 7 software

    I bought a new hp Pavilion notebook and I would like to change the language in my Windows 7 Home premium software, from English to Greek. Could you please tell me if this possible?