Dynamically binding backing bean

Dynamic binding of backing bean
Here is a problem that I have been trying to solve. Maybe someone can have a go at it:
Here is a Search form(Simplified version):
af:selectOneChoice - to choice a 'class family' e.g., companies, NGO, charity, institution etc
af:inputText - to enter a name
af:commandButton – to search
Here is a User task:
1.     Choose a 'class family' from the selectOneChoice
2.     Enter a name in inputText
3.     Click commandButton to start the search
Additional information
1. The number of 'class family' is about 30 and requires different method of search.
2. I want to use a uniform search user interface and so there is only one page for all.
3. Each 'class family' has it own managed bean in face-config.xml.
Scenario:
Lets say the searchUI.jsp has an initial backing bean called SearchBean.java. The af:selectOneChoice in searchUI.jsp has a valueChangeListener and when the user chooses a 'class family' at step (1), the valueChangeListener in SearchBean.java is triggered.
Problem:
The problem is how do I dynamically switch the backing beans, say from SearchBean.java to SearchCompanyBean.java so that when the user next click the search commandButton, it is the searchAction method in the SearchCompanyBean.java and NOT the initial SearchBean.java that handles the action.
Cheers in advance.

Hi,
Assuming you are using ADF BC, have a look at using view criteria. You can define, dynamically apply and remove view criteria on the view object.
Have a look at the help on oracle.jbo.ViewCriteria and applyViewCriteria from the ViewObject implementation class. Sounds like they might meet your requirements.
Create a client method on your VO and drag it onto your page as an ADF parameter form and go from there.
Brenden

Similar Messages

  • How add auto binding backing bean to a jspx page

    A few times during development, I didn't check "automatically expose UI components to in a manage bean" when the jspx page was first created.
    Can someone tell if there is a way to add auto binding backing bean to the page later?
    Thanks

    Hi Deborah,
    when your JSPX page is active, select menu Design -> Page Properties...
    Click Tab Component Binding
    Select Auto Bind and select (or create with New) your Managed Bean
    Regards,
    Didier.

  • How to create adf component dynamically from backing bean

    Hi i,am using dev 11g ver2..
    my requirement is to create a popup like an lov ,
    i need to create adf controls at the run time based on datatype of the table field
    Edited by: [email protected] on Jul 9, 2009 3:56 AM

    Hi Abhilash,
    Following sample could help you:
    //creates an instance of popup and set the id, which is equal to the tag <af:popup id="pop"/> in jsf page
    oracle.adf.view.rich.component.rich.RichPopup popup = new oracle.adf.view.rich.component.rich.RichPopup();
    popup.setId("pop");
    //creates an instance of dialog and sets its properties, which is equal to the tag <af:dialog id="dlg" title="Title"/> in jsf page
    oracle.adf.view.rich.component.rich.RichDialog dialog = new oracle.adf.view.rich.component.rich.RichDialog();
    dialog.setId("dlg");
    dialog.setTitle("title");
    //creates an instance of dialog and sets its properties, which is equal to the tag <af:outputText id="otindlg" value="Welcome"/>
    oracle.adf.view.rich.component.rich.output.RichOutputText opText = new oracle.adf.view.rich.component.rich.output.RichOutputText();
    opText.setId("otindlg");
    opText.setValue("Welcome");
    /*adds ouputText as child to dialog, which is jsf equivalent of
    <af:dialog id="dlg" title="Title">
    <af:outputText id="otindlg" value="Welcome"/>
    </af:dialog>
    dialog.getChildren().add(opText);
    /*adds dialog as child to popup, which is jsf equivalent of
    <af:popup id="pop">
                        <af:dialog id="dlg" title="Title">
                                  <af:outputText id="otindlg" value="Welcome"/>
                        </af:dialog>
    </af:popup>
    popup.getChildren().add(dialog);
    //Finally add the popup as child to the parent component could be a form or some other component and give this popup id to showpopupbehavior tag
    Sireesha

  • How i can display data from backing bean from jsf adf page

    Hi all
    I am creating a adf bc jsf application i am referring hr schema employee table
    in my jsf page i have a inputtext with label employee number if i enter employee number and press tab i should get employee name and jobid and salary for this purpose i am doing like as follows
    my view object query is as follows
    SELECT EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY
    FROM EMPLOYEES
    WHERE EMPLOYEE_ID=:EMP_NO
    and my backing bean for my jsf page is as follows
    package view.backing;
    import javax.faces.component.html.HtmlForm;
    import javax.faces.event.ValueChangeEvent;
    import oracle.adf.view.faces.component.core.input.CoreInputText;
    import oracle.adf.view.faces.component.core.output.CoreOutputText;
    import oracle.adf.view.faces.component.html.HtmlBody;
    import oracle.adf.view.faces.component.html.HtmlHead;
    import oracle.adf.view.faces.component.html.HtmlHtml;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.Row;
    import oracle.jbo.ViewObject;
    import oracle.jbo.client.Configuration;
    public class BindTest3
    private HtmlHtml html1;
    private HtmlHead head1;
    private HtmlBody body1;
    private HtmlForm testForm;
    private CoreInputText employeeId;
    private CoreOutputText firstName;
    private CoreOutputText jobId;
    private CoreOutputText salary;
    public void setHtml1(HtmlHtml html1)
    this.html1 = html1;
    public HtmlHtml getHtml1()
    return html1;
    public void setHead1(HtmlHead head1)
    this.head1 = head1;
    public HtmlHead getHead1()
    return head1;
    public void setBody1(HtmlBody body1)
    this.body1 = body1;
    public HtmlBody getBody1()
    return body1;
    public void setTestForm(HtmlForm form1)
    this.testForm = form1;
    public HtmlForm getTestForm()
    return testForm;
    public void setEmployeeId(CoreInputText inputText1)
    this.employeeId = inputText1;
    public CoreInputText getEmployeeId()
    return employeeId;
    public void changeMethod(ValueChangeEvent event)
    String EmployeeId=(String)event.getNewValue();
    CheckForBind check=new CheckForBind();
    System.out.println(check.getEmployeeNo());
    String amDef = "model.AppModule";
    String config = "AppModuleLocal";
    ApplicationModule am =
    Configuration.createRootApplicationModule(amDef,config);
    ViewObject vo = am.findViewObject("EmployeeBindViewObj1");
    vo.setNamedWhereClauseParam("EMP_NO",EmployeeId);
    System.out.println("Query will return "+
    vo.getEstimatedRowCount()+" rows...");
    vo.executeQuery();
    while (vo.hasNext()) {
    Row curUser = vo.next();
    System.out.println(vo.getCurrentRowIndex()+" "+
    curUser.getAttribute("EmployeeId")+" "+
    curUser.getAttribute("FirstName")+" " curUser.getAttribute("JobId")" "+curUser.getAttribute("Salary"));
    //firstName =(String)curUser.getAttribute("EmployeeId");
    //setFirstName(curUser.getAttribute("EmployeeId"));
    firstName.setValue((String)curUser.getAttribute("FirstName"));
    //jobId.setValue((CoreOutputText) curUser.getAttribute("FirstName"));
    // salary.setValue((CoreOutputText)curUser.getAttribute("Salary"));
    // values.setJobId((CoreOutputText)curUser.getAttribute("JobId"));
    // values.setFirstName((CoreOutputText) curUser.getAttribute("FirstName"));
    //values.setSalary((CoreOutputText)curUser.getAttribute("Salary"));
    Configuration.releaseRootApplicationModule(am,true);
    public void setFirstName(CoreOutputText outputText1)
    this.firstName = outputText1;
    public CoreOutputText getFirstName()
    return firstName;
    public void setJobId(CoreOutputText outputText2)
    this.jobId = outputText2;
    public CoreOutputText getJobId()
    return jobId;
    public void setSalary(CoreOutputText outputText3)
    this.salary = outputText3;
    public CoreOutputText getSalary()
    return salary;
    and my jsf page is as follows
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <f:view>
    <afh:html binding="#{backing_BindTest3.html1}" id="html1">
    <afh:head title="Home" binding="#{backing_BindTest2.head1}" id="head1">
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <style type="text/css">
    body {
    background-color: #f7f7f7;
    </style>
    </afh:head>
    <afh:body binding="#{backing_BindTest3.body1}" id="body1">
    <h:form binding="#{backing_BindTest3.testForm}" id="testForm">
    <af:inputText label="Employee No" binding="#{backing_BindTest3.employeeId}"
    id="employeeId" valueChangeListener="#{backing_BindTest3.changeMethod}" autoSubmit="true"/>
    <af:outputText value="#{backing_BindTest3.firstName.value}"
    binding="#{backing_BindTest3.firstName}"
    id="firstName"/>
    <af:outputText value="outputText2"
    binding="#{backing_BindTest3.jobId}"
    id="jobId"/>
    <af:outputText value="outputText3"
    binding="#{backing_BindTest3.salary}"
    id="salary"/>
    </h:form>
    </afh:body>
    </afh:html>
    </f:view>
    <%-- oracle-jdev-comment:auto-binding-backing-bean-name:backing_BindTest2--%>
    but i am getting result in console but i cant get the value of firstname into my jsf page
    can any one can tell me for get the value to jsf page what i can do
    and what are the changes i can do in my jsf page

    hi,
    i tried to set value like as follows
    name=(CoreOutputText)curUser.getAttribute("FirstName");
    but that time i getting exception like as follows
    ec 22, 2007 2:17:27 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
    SEVERE: java.lang.ClassCastException: java.lang.String
    javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.String
         at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:150)
         at oracle.adf.view.faces.component.UIXComponentBase.__broadcast(UIXComponentBase.java:1087)
         at oracle.adf.view.faces.component.UIXEditableValue.broadcast(UIXEditableValue.java:247)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:269)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:363)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassCastException: java.lang.String
         at view.backing.ChangeValue.changeMethod(ChangeValue.java:49)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
    What will be the resion please help it is very critical for me

  • TP4 / AF:REGION / What is the way to work with af:region and Backing Beans?

    Hello,
    I would be able to use the "af:region" component with a Backing Bean, but all examples I can found googling are with pageDef.
    So, I have been trying with different classes the way to solve this problem and I arrive to this:
    oracle.adf.controller.internal.binding.TaskFlowRegionModel
    Some code:
    task-flow-definition.xml
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-definition id="taskDestinationA">
        <default-activity>destinationA</default-activity>
        <view id="destinationA">
          <page>/regionDestinationA.jsff</page>
        </view>
        <use-page-fragments/>
      </task-flow-definition>
    </adfc-config>
    adfc-config.xml
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <managed-bean>
        <managed-bean-name>backing_regionTest</managed-bean-name>
        <managed-bean-class>backing.RegionTest</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <!--oracle-jdev-comment:managed-bean-jsp-link:1regionTest.jspx-->
      </managed-bean>
    </adfc-config>
    regionTest.jspx
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <af:document binding="#{backing_regionTest.document1}" id="document1">
    <af:form binding="#{backing_regionTest.form1}" id="form1">
        <af:region binding="#{backing_regionTest.region1}" id="region1"
                   value="#{backing_regionTest.regionModel}"/>
    </af:form>
    </af:document>
    </f:view>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_regionTest-->
    </jsp:root>
    RegionTest.java
    import oracle.adf.controller.internal.binding.DCTaskFlowBinding;
    import oracle.adf.controller.internal.binding.TaskFlowRegionModel;
    import oracle.adf.view.rich.component.rich.RichDocument;
    import oracle.adf.view.rich.component.rich.RichForm;
    import oracle.adf.view.rich.component.rich.fragment.RichRegion;
    import oracle.adf.view.rich.model.RegionModel;
    public class RegionTest {
        private RichForm form1;
        private RichDocument document1;
        private RichRegion region1;
        private RegionModel regionModel;
        public RegionTest () {
            /*Here I try to put the same values as the constructor of TaskFlowId*/
            /*THERE IS NO DOCUMENTATION ANYWHERE :P*/
            DCTaskFlowBinding dctfb = TaskFlowRegionModel.getCurrentTaskFlowBinding("/WEB-INF/task-flow-definition.xml","taskDestinationA");
            //And here, dctfb is always NULL.
            /*I try removing the '.xml' extension of the name, but still not works*/
            //Fill the value of regionModel
            this.regionModel = new TaskFlowRegionModel(dctfb);
            /*Perhaps is better create a method to acquire the value,
              but I try in constructor first*/
        public void setForm1(RichForm form1) { this.form1 = form1; }
        public RichForm getForm1() { return form1; }
        public void setDocument1(RichDocument document1) { this.document1 = document1; }
        public RichDocument getDocument1() { return document1; }
        public void setRegion1(RichRegion region1) { this.region1 = region1; }
        public RichRegion getRegion1() { return region1; }
        public void setRegionModel(RegionModel regionModel) { this.regionModel = regionModel; }
        public RegionModel getRegionModel() { return regionModel; }
    regionDestinationA.jsff
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <af:outputText value="Hello World!"/>
    </jsp:root>So, my problem is in Backing Bean class (RegionTest.java). I don't know how I can acquire 'DCTaskFlowBinding' instance value; well, I don't know if that is the way to acquire the value of TaskFlowRegionModel, and even I don't know if this is the way to set the value of RegionModel. I don't know all of this because there isn't documentation yet :P
    Some oracle-java-guru can help me, please?
    JVN
    PD: Environment: JDev TP4.

    Hi,
    your biggest problem is the use of internal classes that probably will change without further notice and lead to a broken application then
    I don't think that the region model is supposed to work without ADF binding in this release. If you need a page region then the Trinidad region should be helpful (though it doesn't support you with navigation cases as the taskflow does)
    I'l check internally if there is an option to do what you are trying to do. However, as mentioned, if you need to use internal classes then the answer probably is no.
    Frank

  • To add components in JSF page from backing bean

    I am trying to display list of available files under a directory using HtmlSelectOneMenu. In constructor of backing bean i have the following code
    directory = new File("C:\\files");
        files = directory.list();
        String[] fileList = this.getFiles();
        List valueList = new ArrayList();
        for (int i=0; i < fileList.length; i++) {
            SelectItem item = new SelectItem(fileList);
    valueList.add(item);
    UISelectItems items = new UISelectItems();
    items.setId("items"+sessionVariable);
    items.setValue(valueList);
    listbox = new HtmlSelectOneMenu();
    listbox.setId("listbox"+sessionVariable);
    listbox.getChildren().add(items);
    getPanelGrid1().getChildren().add(listbox);
    and my jsf looks like this <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <f:view>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>Employee</title>
    <link type="text/css" rel="stylesheet" href="resources.css"/>
    <style type="text/css">
    body {
    background-color: #ffffff;
    a:link { color: #000000; }
    </style>
    </head>
    <body><h:form binding="#{backing_SampleEdit.form1}" id="form1">
    <h:panelGrid columns="2" binding="#{backing_SampleEdit.panelGrid1}"
    id="panelGrid1" >
    <h:outputLabel value="Template Name"
    binding="#{backing_SampleEdit.outputLabel1}"
    id="outputLabel1"/>
    </h:panelGrid>
    </h:form></body>
    </html>
    </f:view>
    <%-- oracle-jdev-comment:auto-binding-backing-bean-name:backing_SampleEdit--%>
    I am getting an exception like "Cant instantiate the class exception"..
    please help me out in this..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    The Stacktrace looks like this
    SEVERE: Managedbean backing_SampleEdit could not be created Can't instantiate class: 'com.backing.SampleEdit'.. class com.backing.SampleEdit : java.lang.NullPointerException
    javax.faces.FacesException: Can't instantiate class: 'com.backing.SampleEdit'.. class com.backing.SampleEdit : java.lang.NullPointerException
         at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:229)
         at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:282)
         at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
         at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:145)
         at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:166)
         at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
         at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:406)
         at javax.faces.webapp.UIComponentTag.createComponent(UIComponentTag.java:1019)
         at javax.faces.webapp.UIComponentTag.createChild(UIComponentTag.java:1046)
         at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:761)
         at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:451)
         at com.sun.faces.taglib.html_basic.FormTag.doStartTag(FormTag.java:345)
         at SampleEdit.jspService(_SampleEdit.java:60)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:259)
         at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51)
         at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
    Caused by: java.lang.ClassNotFoundException: class com.backing.SampleEdit : java.lang.NullPointerException
         at java.beans.Beans.instantiate(Beans.java:208)
         at java.beans.Beans.instantiate(Beans.java:48)
         at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:223)
         ... 45 more
    Caused by: java.lang.NullPointerException
         at com.backing.SampleEdit.<init>(SampleEdit.java:53)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at java.lang.Class.newInstance0(Class.java:350)
         at java.lang.Class.newInstance(Class.java:303)
         at java.beans.Beans.instantiate(Beans.java:204)
         ... 47 more

  • How to distinguish backing bean method invoker like struts *.do

    I want to monitor request and response time of application via access log of httpd . But the urls are the same in one backing bean.
    how should i do about this?

    Hello,
    May know how to submit a button autoamtically on onload of page with clicking a welcome alert box. the submit button has managed button too to show a message on console using SOP.
    the problem is.
    1. before loading the page a javascript comes on which i clicked ok
    2. the page gets loaded and the button is there which gets automatically clicked and the managed bean associated with prints a message on console using SOP.
    I m trying to do this through server listener and click listener. the code is(adf jspx page)
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1" binding="#{backingBeanScope.backing_check4.d1}">
    <af:form id="f1" binding="#{backingBeanScope.backing_check4.f1}">
    <af:commandButton text="commandButton 1"
    binding="#{backingBeanScope.backing_check4.cb1}"
    id="cb1" action="#{beanCheck4.submit1}"/>
    <af:clientListener type="click" method="delRow"/>
    <af:serverListener type= "jsServerListener"
    method="#{backingBeanScope.backing_check4.submit1}"/>
    <f:facet name="metaContainer">
    <af:resource type ="javascript">
    x=confirm("hi");
    // if(x){
    delRow = function(event){
    AdfCustomEvent.queue(event.getSource(), "jsServerListener", {}, false);
    return true;
    </af:resource>
    </f:facet>
    </af:form>
    </af:document>
    </f:view>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_check4-->
    </jsp:root>
    the backing bean code is -----
    public class classCheck4 {
    public classCheck4() {
    public String submit1() {
    System.out.println("hello");
    return null;
    }

  • How to call backing bean method from java script

    Hi,
    I would like to know how to call backing bean method from java script.
    I am aware of serverListener and [AjaxAutoSuggest article|http://www.oracle.com/technology/products/jdev/tips/mills/AjaxAutoSuggest/AjaxAutoSuggest.html]
    but i am running in to some issues with [AjaxAutoSuggest article|http://www.oracle.com/technology/products/jdev/tips/mills/AjaxAutoSuggest/AjaxAutoSuggest.html]
    regarding which i asked for help in other thread with subject ....Question on AjaxAutoSuggest article (Ajax Transactions Using ADF and J...)
    The reason why i posted is ( though i realise both are duplicates) .. that threads looks as a specific question to that article hence i would like to ask the quantified problem is asked in this thread.
    So could any please letme know how to call backing bean method from java script
    Thanks
    Murali
    Edited by: mchepuri on Oct 24, 2009 6:17 PM
    Edited by: mchepuri on Oct 24, 2009 6:20 PM

    Hello,
    May know how to submit a button autoamtically on onload of page with clicking a welcome alert box. the submit button has managed button too to show a message on console using SOP.
    the problem is.
    1. before loading the page a javascript comes on which i clicked ok
    2. the page gets loaded and the button is there which gets automatically clicked and the managed bean associated with prints a message on console using SOP.
    I m trying to do this through server listener and click listener. the code is(adf jspx page)
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1" binding="#{backingBeanScope.backing_check4.d1}">
    <af:form id="f1" binding="#{backingBeanScope.backing_check4.f1}">
    <af:commandButton text="commandButton 1"
    binding="#{backingBeanScope.backing_check4.cb1}"
    id="cb1" action="#{beanCheck4.submit1}"/>
    <af:clientListener type="click" method="delRow"/>
    <af:serverListener type= "jsServerListener"
    method="#{backingBeanScope.backing_check4.submit1}"/>
    <f:facet name="metaContainer">
    <af:resource type ="javascript">
    x=confirm("hi");
    // if(x){
    delRow = function(event){
    AdfCustomEvent.queue(event.getSource(), "jsServerListener", {}, false);
    return true;
    </af:resource>
    </f:facet>
    </af:form>
    </af:document>
    </f:view>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_check4-->
    </jsp:root>
    the backing bean code is -----
    public class classCheck4 {
    public classCheck4() {
    public String submit1() {
    System.out.println("hello");
    return null;
    }

  • How to read values of dynamic UI elements in a backing bean?

    Hi, I have an ADF page where some of the UI elements (in this case, checkboxes) are dynamically rendered as such:
    <af:forEach var="row" items="#{backing_testPage.userList}">
    <af:selectBooleanCheckbox id="checkbox" value="#{row.id}"
    text="#{row.name}" selected="#{row.userSelected}"/>
    </af:forEach>
    I am wondering how can I read the values of these checkboxes in my page's backing bean. It does not seem possible to specify a distinct binding value for the selectBooleanCheckbox elements in order to tie them to a CoreSelectBooleanCheckbox variable in my backing bean (so that I could check whether the checkbox is selected or not).
    When the page gets rendered, I did see that the checkboxes get assigned distinct ids like checkbox_1, checkbox_2, checkbox_3, etc... Not sure if that would help with this.
    Would appreciate any tips on this as I've been struggling with this for awhile. Thanks!

    You probably would do better with a SelectManyCheckbox. Here's how:
    In your backing bean you need:
    private String[] usernames;
    public String[] getUsernames () {
      return usernames;
    public void setUsernames (String[] _usernames) {
      usernames = _usernames;
    }In your page:
    <af:selectManyCheckbox value="#{backing_testPage.usernames}">
      <f:selectItems value="#{backing_testPage.userList}"/>
    </af:selectManyCheckbox>When the form is rendered any strings in the usernames array that are in the userList will be checked. When submitted, any checked items will be in the array.

  • Dynamic backing bean

    Hello
    Someone can help me with the following issue?
    Im working on an application that creates jsf pages based on user input. Its a tool where one user should build a questionnaire and another user has to ansewer it.
    The component creation based on user(quetionnaire builder) input is working has well, but i dont have any idea how to store the inputs from the user that has to ansewer the questionnaire.
    I need a way to dynamic generate a backing bean and create a valueBind with all UIInput Components, forcing the bean to store the ansewers in a collection.
    Someone know how may i do this?
    Maybe a hashMap in a backingBean solve my problem, but i dont know how to bind all components with the map... how to make my jsfComponents add their own key and value in a map?
    Thanks, and sorry for my poor english.
    Ferryman

    Using a map to hold generated inputs is something I've used before and it works. I had a set of different classes that all knew how to create the JSF to add themselves to the form. When they added themselves, they bound the value to the map attribute using the name as specified on the constructor. The objects also know how to get the value out of the map. So during construction of the input form you loop through all these objects and tell them to add themselves to the input form, and then to get the values back you loop through the objects and ask them what the value is.
    Here's another suggestion: how about using an h:dataTable to display a List of "QuestionBean"s.
    Here's a sketch of what the code would look like:
    public class QuestionBean {
      private String prompt;
      private String input = "";
      public void setPrompt( String p ) {
      // getPrompt, setInput, getInput...
    public class QuestionsBean {
      String current_question_input;
      List questionList;
      public void getQuestionList() {
        return question_list;
      public void setCurrentQuestionInput( String qi ) {
        current_question_input = qi;
      public void addQuestion( ActionEvent e ) {
        QuestionBean qb = new Questionbean():
        qb.setPrompt( current_question_prompt );
         questionList.add( qb );
    <h:dataTable value="#{questions.questionList}" var="var_question">
      <h:column>
        <h:outputText value="#{var_question.prompt}"  />
      </h:column>
      <h:column>
        <h:inputText value="#{var_question.input}" />
      </h:column>
    </h:dataTable>

  • Binding an object tag value / Creating HTML via a backing bean

    I have a task flow that sets some properties in my backbean. I've bound the "classid" of an <object> tag to one of these values. However, the first time i load the JSFF page, the object tag isnt created, but if i refresh the page, its loaded correctly.
    This would lead me to believe that the binding isn't being done before the JSFF is rendered, so the question is. Does anyone know how to fix this? and if not, i have thought about creating a backing bean that would add the <object> tag to the page with the bind value, but have no idea how i would go about this.
    Does anyone know of any good tutorials on adding HTML via a backing bean before the page is rendered?

    After further investigation and talking to a colleague, It seems it might not be binding related, since if I print out the bind in a text field, it displays correctly. I think the problem is because I am trying to inject an object tag (hosts a .NET control) into a fragment, but this is never picked up and rendered. Thus, when I do a full page refresh, the object tag is added and all goes well.
    If I attempt to bind/add a ADF Faces component this way, it works correctly.
    Do you know how to inject code for a fragment?, I am very stuck at the moment - don't have that much knowledge on ADF, so any links/help would be appreciated.
    My scenario is this:
    I am using a task flow that has 2 fragments.
    Fragment 1: set properties - has two input fields and a next button which are bound to a bean that saves the input fields
    Fragment 2: display object tag using step ones properties.

  • Binding parameters in backing bean

    hey,
    i have a function func1(String str) with a parameter
    in my bb i use code to invoke the function:
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("func1");
    operationBinding.execute();
    how can i bind parameter in backing bean?

    hi user,
    + with,
    here some
    your bean
      public class Login  {
        private RichInputText it2;
        private RichInputText it1;
    public void setIt2(RichInputText it2) {
            this.it2 = it2;
        public RichInputText getIt2() {
            return it2;
        public void setIt1(RichInputText it1) {
                 this.it1 = it1;
        public RichInputText getIt1() {
                   return it1;
    BindingContainer bindings = getBindings();
            OperationBinding operationBinding = bindings.getOperationBinding("checkLoginCredentials1");
            operationBinding.getParamsMap().put("p_user", it2);    p_user - bind var
            operationBinding.getParamsMap().put("p_pwd", it1);    p_pwd - bind var
    } your method in am:
        public String checkLoginCredentials1(String p_user, String p_pwd) {
            /*set the bind variable value*/
            vo.setNamedWhereClauseParam("p_user", p_user.toUpperCase());
            vo.setNamedWhereClauseParam("p_pwd", p_pwd.toUpperCase());
            return "Welcome" + "  " + p_user.toUpperCase();
        }p_user - say this in vo also
    p_pwd - say this in vo also
    just an references.
    Edited by: Erp on Nov 23, 2011 11:00 PM

  • Feedback requested: in backing bean, use AM svc method or operation binding

    Hello all,
    I'm posting this here to solicit feedback from both Oracle and from the community at large. The basic question is around what is the best/better practice for calling Application Module service methods from a backing bean. One choice is to call the service method directly on the application module; the other is to put an operation binding in the page definition and to execute that binding. The basic code for the two methods:
    ((MyAppModule) getBindings().getDataControl.getApplicationModule()).serviceMethod();or
    getBindings().getOperationBinding("serviceMethod").execute();My question comes up specifically because of differences in how the default error handling works. For testing, we created a simple AM with a single service method that throws a JboException (a kind of RuntimeException). Then, we created a simple ADF Faces page with an af:messages (to see how error handling works) and four af:commandButtons. The four command buttons are as follows (the code is in the backing bean for each of them):
    1). partialSubmit=false, calls application module service method directly
    2). partialSubmit=false, executes service method via operationBinding
    3). partialSubmit=true, calls application module service method directly
    4). partialSubmit=true, executes service method via operationBinding
    None of the backing bean methods catch any exceptions. Note that #2 and #4 could be bound directly to the methodBinding in the pagedef, but we did it via code in the backing bean to more accurately mimic some of the code in our application; in any case, the results were the same using either method for #2 and #4.
    The results when clicking each button:
    1). ugly stack trace in the browser window (yuck!)
    2). the af:messages component displays the JboException (nice)
    3). No stack trace, no error message (even worse than #1, user thinks "success," even though exception occurred)
    4). the af:messages component displays the JboException (nice)
    This leads me to think that perhaps calling via the binding container is the preferred method because the default error handling gives acceptable behaviour, whereas using the AM directly gives unacceptable behaviour.
    Another "benefit" of calling through the binding container is that the technology in the model layer could be changed without having to change the view layer. I say "benefit" in quotes because I personally believe that one should write applications to take full advantage of the technology they choose, not try to strive for technology/database independence (no flames on this one please - that's not the main point here ;).
    Having made the preliminary conclusion that the binding container is the preferred way to go for service methods - that could then ostensibly be extended to view objects as well. Should the view layer use iteratorBindings instead of dealing with view objects directly as well? This is a bit more shaky ground because there are some points in the view/controller layer (namely managed beans not associated with any page) where there is no binding container available. However, in backing beans, for re-executing queries we could make the "best practices" statement to always use iteratorBindings instead of accessing the AM/VO. I just completed a test comparing view object usage vs iterator binding usage (vo.executeQuery() vs myIter.executeQuery()) with similar results to the AM testing - the binding container route gives acceptable error handling, whereas the VO route forces me to implement my own error/exception trapping and message display.
    I am aware of one drawback to using the binding container instead of the AM directly - that is that each page that needs the service method must have something in it's pageDef for that method. Originally, we had some code in a superclass of some backing beans that called the AM directly, and we didn't need to touch the pageDefs of approximately 20 JSF pages - when changing to use the operation binding - we had to add it to a lot of page defs.
    I'm very interested in feedback from the community at large on my conclusions. If the discussion gets to be too big/complicated for here, we can change venues to perhaps the oracle wiki or another forum. I did do a quick review of SRDemo ADFBC and noted that all of the service method calls are done through operation bindings - I never noticed that before! Most of the discussion we see in the forums shows people calling them directly, which is why I thought it important to post here.
    Best regards,
    John

    What we did in our project was that we create a "Headless" pagedefinition, (that was how it was described in SRDemo documentation or in JDeveloper help, its on the latter part about Security).
    You have to create that pagedef manually. and it only has an
    <page id="yourPageDef_Id" path="..."> entry in your Databindings and no
    <page path=".../yourPageDef_id" usageId=".../???.jsp">And then in your faces_config and your managed bean name is backingSystemStateBean and is located at path.to.bean.SystemState add a Session scope bean entry like this:
      <managed-bean>
        <managed-bean-name>backingSystemStateBean</managed-bean-name>
        <managed-bean-class>path.to.bean.SystemState</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
          <property-name>bindings</property-name>
          <value>#{data.yourPageDef_Id}</value>
        </managed-property>

  • Remove unwanted backing bean binding

    Hi All,
    My JSFX page has around 200 fields and I have to manipulate only a few fields in the backing bean. When I use this method to bind the UI components with the backing bean Design--> Page Properties ---> Component Binding ---> Auto Bind, all the page UI components get bound. This creates unnecssary binding and my backing bean java files becomes quite messy and runs into 5000 lines. Is it possible to remove the unwanted ones manually without causing any harm. What's the best practice by the way.
    Thanks
    Edited by: user5108636 on Mar 10, 2011 8:38 PM

    Hi,
    This creates unnecssary binding and my backing bean java files becomes quite messy and runs into 5000 lines
    This exactly is why the auto-generate option for backing beans is disabled by default in JDeveloper. There is no functionality in the IDE to remove unneeded bindings (how would the tool be able to tell what you need and what you don't need given that managed beans can be referenced from other managed beans and are referenced from EL in the component binding property).
    Best practices for working with backing beans is to not create them by default and instead use managed bean that you turn into backing beans (which is when they have a page component binding reference) only when needed. This way you stay in control
    Sorry, I have no better answer for this
    Frank

  • How to bind ADF table with a collection of elements using backing bean.

    Hi Experts,
    My JDev version is 11.1.1.6.0.
    I need to bind ADF table with a collection of elements using backing bean.
    My backing bean consists of 6 lists of strings, where each list represents a column of table. How can I populate the entries of table with these lists.
    Thanks
    Gopi

    Hi,
    Create an object representing the row (setter/getter). Then have a list of these objects. Drag and drop the table and point its value to the list and the type to the row object
    Frank

Maybe you are looking for

  • Debug in Message Mapping

    Hi all,    can I debug a message mapping when click Test function? Thanks in advance,             Michele.

  • Lightroom CC does not start on MAC

    I downloaded the version of Lightroom CC for Mac and start the program makes an attempt to get the initial welcome screen and the program closes. Made several attempts and does the same. I uninstalled and reinstalled and behaves the same. Lightroom 5

  • Swype dictionary disable

    Hi, 'Finally upgraded from my original droid to the x2.  When I tried swype it guesses every word - always wrong -.  how can I get it to just type in the letters I pick and not try to think for me?  I turned off every possible option under settings a

  • Adobe illustrator How to edit my photo Template

    Can anyone tell me how to edit the photo blocks on my Template. Someone made me a template in adobe illustrator and i can't seem to edit the blocks to add photos instead of the other images. Thank You

  • First is it possible to connect my imac eaRLY 2009 as display for my macbook white 2010?

    first is it possible to connect my imac eaRLY 2009 as display for my macbook white 2010? If so what exact cables on the market do i need to purchase to make this work? Please help me out. I cannot afford to buy a new mac so temporarily this is my onl