JDev11 with ADF backing bean examples?

I have gone through many of the OBEs, How To examples, and a few custom examples in blog posts. Almost all of the examples that use ADF Business Components to model oracle data do not use backing beans, at least not of the ones I have found. If anyone know of links to examples that show JDeveloper using ADF to model Oracle table and using backing beans (Could be calls to the application module, whatever). Could you please post links. The examples from Oracle tend to be declarative with ADF components, and I want to get to the next level of complexity in development that combines custom code with existing declarative code.
It would be great if a few of the OBEs could show a declarative, and also a programmatic way to solve the same problem in a few cases - such as the "Build a Fusion Web Application" in the help. I don't need everything programmatically done, just show where something can be done declarative and how it could also be done programmatically. It would also help to know the limits of declarative programming and where you would need to code a solution.
Thanks, Ken

>
Warning: Long Post. I wanted this to be clear as to what I really need help with.
>
What I am looking for is more clarification on both how to use and when to use backing beans.
Here is an example that I am currently working on using jdev11u2 with ADF BC for the model and JSF.
I have a single page. The goal is to have several filter components, then a run report. Under the run report there are several components based on select statements that use one or more of the filter components. These components are displayed as graphs (because that is what management wants to see.)
Seems easy enough.
I have four graphs that are desired. In my oracle schema, I use sql developer to develop four queries that return the data that I want.
In the model, I create four view objects. Each one has a one or more binds for filters. I don't put in a default value, but make them required. Most of the views have a common bind for techID, which actually points to a different column name in each of the views, but generally has a similar meaning. I didn't create the tables, just have to live with the existing design. Sound familiar? After creating read only views that do not have EOs, I add these to the Application Module. I also create a lookup for techid that queries a table and returns two values, techname and techid. I want this to be used for a combobox to select the user to run the report on.
Three of the queries have a date component. The idea is to have options so that the use can select from three choices, last 30 days, last 60 days, and last 90 days. I modify three of the queries in the VOs, and add a DateFilter bind that is of type Date. This happens to be oracle.jbo.domain.Date
So to get this to work so far, I create a method named updateViews in my Application Module. I create two methods, one that receives String TechID, and another that receives String TechID and java.util.Date date. In the code for the first choice, I simple get the date 30 days ago and use that, then call the second method with both techid and the date. In the second method, I convert java.util.Date to oracle.jbo.domain.Date. I create an instance of each VO, and call a method on each named updateWithParams(String techid, Date date). The Date is automatically defined as the oracle.jbo.domain.Date. In each of my VO's, I create a method in the VOImpl.java for each that is basically the same - accepts the parameters, sets them in the where clause, then calls the execute method.
In the form, I start simple. I drag the ExecuteWithParam method to the form from the updateView that only has the techid field as an ADF Button. I Then drag the techid parameter under this method to the form as a single selection, and set this up so that it uses my lookup for the data, displays the name, and uses the techid as the value.
To test, I drag each of the VOs to the page as simple read only tables, not bothering to change any of the settings. This is just to make sure it is working.
To note, the page uses an actionlistener for the button, so the code on the page for the button is:
<af:commandButton actionListener="#{bindings.updateViews1.execute}"
  text="updateViews1"
  disabled="#{!bindings.updateViews1.enabled}"/>Everything works! Yea!
Now to make this more interesting, I want to add the date filter.
I delete the Command button and the combobox. I now drag the method that has two parameters. Same procedure as before, adding the techid parameter that uses the combobox that uses the lookup vo. Great so far.
Now here is where I run into problems and am trying to understand backing beans as a possible solution.
I need the data selection to be a radio button that has three choices: Last 30, Last 60, and Last 90. Using the drop method of the parameter to the form, it doesn't appear that I have any way to setup initial values correctly. Just to test, I dropped as an input date. In this case I can't set the default date. I get the following component on the page:
          <af:inputDate value="#{bindings.date.inputValue}"
                        required="#{bindings.date.hints.mandatory}"
                        shortDesc="#{bindings.date.hints.tooltip}">
            <f:validator binding="#{bindings.date.validator}"/>
            <af:convertDateTime pattern="#{bindings.date.format}"/>
          </af:inputDate>What I want is to be able to modify the value for #{bindings.date.inputValue}, but I don't understand how backing beans work well enough to implement this. When I try, everything gets messed up. I even tried to use a backing bean for the command button, but then I have an actionlistener, I have to create both the binding and action. I don't know if this is correct, and haven't found documentation that shows what to do.
So this is my dilemma, I think that a backing bean will solve the problem, but need examples that incorporate both standard table bound components to ADF BC model, that I can manipulate. Eventually, I want the date component to point to a radio button. If I drop the component on the form and drop as a select one radio, this is my starting point. Now, how can I setup the values so that the 30, 60, and 90 are really SYSDATE - 30, SYSDATE - 60, and SYSDATE -90 (or java equivalent using Calendar), and still bound to the ADF component so when the command button is pressed, the correct parameters are sent.
What is not clear is whether I need to switch out the execwithparams to backingbean functionality to call the method. Can both co-exist with actionlistener being set, and an action pointing to a backing bean?
This is why I am requesting more examples, so that the mixing of ADF BC model bound to ADF faces components and programming code to get the compoents to work according to a specific user case can be completed.
Thanks, Ken

Similar Messages

  • Invoke bpel from ADF Backing Bean

    Hi,
    I have a requirement of invoking a bpel process developed with SOA 11g Suite from a ADF Backing Bean in Jdeveloper 10g. Can someone provide me with code samples?
    I have reference for invoking bpel process from standalone java client in Jdeveloper 11g, but landing up getting exceptions.
    This is critical and any help is appreciated!

    Hi,
    Thanks. This is the code used. I'm trying to invoke a bpel created in SOA suite 11g using a stand alone java client in Jdeveloper 10.1.3.3.0.4147.
    public static void main(String args[]) throws Exception {
    Hashtable jndiProps = new Hashtable();
    jndiProps.put(Context.PROVIDER_URL,
    "url");
    jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    jndiProps.put(Context.SECURITY_PRINCIPAL,"weblogic");
    jndiProps.put(Context.SECURITY_CREDENTIALS,"pwd");
    jndiProps.put("dedicated.connection","true");
    Locator locator = LocatorFactory.createLocator(jndiProps);
    String inputPayload = getDOM();
    String compositeDN="default/myprocess!1.0";
    Composite composite = locator.lookupComposite(compositeDN);
    System.out.println("getting the dn "+composite.getDN());
    String serviceName="myprocess";
    Service deliveryService = composite.getService(serviceName);
    // construct the normalized message and send to Oracle WLS
    NormalizedMessage nm = new NormalizedMessageImpl();
    nm.getPayload().put("payload", inputPayload );
    NormalizedMessage res = null;
    try
    res = deliveryService.request("initiate", nm);
    catch(Exception e)
    e.printStackTrace();
    System.out.println("updated");
    public static String getDOM() {
    StringBuffer res = new StringBuffer();
    String requestXml="";
    try{                       
    InputStream is = new BufferedInputStream(
    new FileInputStream("D:\\test.xml"));
    int c;
    while ((c = is.read())!= -1 ){
    res.append((char)c);
    }catch(Exception e){
    e.printStackTrace();
    return res.toString();
    This line res = deliveryService.request("initiate", nm);
    ends up getting the following exception.
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
    java.lang.RuntimeException: oracle.fabric.common.FabricInvocationException
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
    at oracle.soa.management.internal.ejb.impl.FacadeFinderBean_4vacyo_FacadeFinderBeanImpl_1032_WLStub.executeServiceMethod(Unknown Source)
    at oracle.soa.management.internal.ejb.EJBLocatorImpl.executeServiceMethod(EJBLocatorImpl.java:916)
    at oracle.soa.management.internal.facade.ServiceImpl.request(ServiceImpl.java:118)
    at invokebpelprocess.InvokeBpel.main(InvokeBpel.java:74)
    The following jars are included.
    Soa-infra-mgmt.jar
    weblogic.jar
    wsclient.jar
    wsclient-extended.jar
    wlfullclient.jar
    fabric-common.jar
    fabric-runtime.jar
    Edited by: user10291345 on Oct 26, 2010 2:09 AM

  • Need help with fillling backing bean w/info

    I am new to JSP and have some very basic questions regarding filling a JSF with data from the database and then allowing the user to edit and save the data back to the database.
    I am using JDeveloper 10.1.3 developer preview
    This is what I have so far (which may be suspect in itself):
    1. A method called DatabaseUtil.getProductApproval(productApprovalNbr) which creates and returns a ProductApprovalBean
    2. A JSF called search.jsp with backing bean Search.java.
    3. Another JSF called productApproval.jsp with backing bean ProductApproval.java
    4. Successful navigation defined from search.jsp to productApproval.jsp
    5. The backing bean Search.java has a SearchButton_action that returns success if productApprovalNbr specified is OK (edit currently hard-coded)
    6. The productApproval.jsp has a component called productApprovalNbr with binding to backing_search.productApprovalNbr
    This is want I want to do but don’t know how:
    1. Make a call to create the ProductApprovalBean and fill the productApproval.jsp backing bean with info from ProductApprovalBean before the productApproval.jsp is displayed to the user.
    2. Allow the user to change values and save them back to the db after clicking on the save command button.
    How do I wire this stuff up?
    Any advice will be greatly appreciated because I am stuck big time.
    Regards,
    Al Malin

    Thanks for the reply Brian.
    I’ve looked at directly binding to the ProductApprovalBean and that looks like a good approach to take in other cases but for the UI design I currently have I am not sure.
    Basically, the ProductApprovalBean is a master entity with several related detail entities. This is so because the user wants to see all of the related data on a single page instead of showing one page for a master, another for a detail, another for another detail, etc. So I am designing a JSF form that consists of multiple sections, each section presenting an entity. Each detail section would have its own command buttons for editing, adding, and deleting rows.
    Since my first post I have figured out how to fire an event in search.jsp and catch it in an event handler in the backing_bean. (This was great progress --- only took me 9 hours to write 6 lines of code. :-) From here I figured I could access the db and load up the fields for the first screen and do updates with the subsequent screens.
    After looking through the documentation, I not sure I’m up to the task. New problem, I don’t know the JSF classes well enough to load up the fields, and after they are loaded, how do I get the data out. (At first, JSF looked really slick but there has been a steep leaning curve associated with it, I'm real close to reverting to JSPs and servlets.)
    If I am on the wrong path and this approach is all wet, please say so.
    Regards,
    Al Malin

  • Problem with ADF Faces; Bean (session scope) keeps Data after Session ends

    Hi,
    I have a project, which was transferred from an myFaces-project to an ADF Faces-project. Since i´am working with the ADF Faces the data in my beans (which are all in session-scope) won´t vanish after a logout.
    1) I have a method in one bean, which clears the user data (name and passwd), for example, but after a logout (redirecting to the login-page) I just have to push the loginbutton to get in the app. as the last user logged in. The bean is cleared, but where does the data come from. When the app was working with myFaces, this did not happen, the inputText and the inputHidden were empty.
    2) I have a af:table, which displays max ten lines. If the last user watched the elements 21 to 30 in that table, the next user who watches the table gets the same elements shown and not the elements 1 to 10. That shouldn´t happen in a different session.
    3) I have some listboxes in one page, where a user can make some decisions. If i logout and in again, i can see the decisions last made in these listboxes.
    All that happens with beans in session scope!
    Thanks for the replies (i hope) and excuse my bad english,
    Santiago

    Hi
    If this is the case , you can explicitly make all ur session data objects null.

  • 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

  • Role of backing beans in MVC design

    Hello,
    yet another JSF/MVC question. In short, I would like to know what the role of the backing beans are in an MVC design with JSF. The most simple answer would be that they are just the Controllers. But that doesn't seem enough.
    Suppose I have an application model, call it Ma, which is just an interface that represents a use case in Java. Ma doesn't know anything about a view or controller, it is just domain logic with application-specific state and behavior added. Now,
    - my backing bean uses Ma as its Model, acting as a true Controller by delegating requests to it
    - my backing bean also adds view-specific state (show/hide stuff and it also returns a List<SelectItem> for example) that I can't put on Ma, so it also acts as a view model Mv
    So, I could argue that I have an Mv-V-C design, where the backing bean is both C and Mv. My user interface V only queries Mv for its state.
    Usually I read that V and C are considered to be very tightly coupled, so then I would have an Ma-V-C design with the backing bean being C and part of V.
    Is it just a question of terminology or point of view, expressing the same idea twice?

    The way I think about it is that there are multiple layers of MVC.This kind of refers to my point-of-view question. So let's try two of them.
    The view itself can be thought of as containing MVC elements.When only looking at JSF (presentation layer) we have:
    - Model: backing beans (view model Mv)
    - View: view root and JSPs (query backing beans for state)
    - Controller: Faces servlet (dispatches requests to backing beans)
    In my "enterprise" quality applications, I will have three distinct layers.Taking a step back, let's look at the application layer (your "control layer", application logic behind interface) and the presentation layer.
    Then:
    - Model: application model Ma in application layer
    - View: backing bean (associated with UI components)
    - Controller: backing bean (dispatches requests to Ma)
    Agree?
    It's interesting that you call my application layer "control layer" since it seems more like a model to me, especiallly when you say:
    The control layer consists of business logic interfaces and their implementations.This said, the objects in this application layer do have some controller functionality as they orchestrate the interactions with the underlying domain model, just llike the backing beans do with the application model. So maybe you can take another step back and consider these application logic interfaces as the View and Controller for the underlying domain model. That is: in a layered MVC design every M can become the VC for an underlying (more general) layer?
    And I have seen this taken to extremes.Perhaps that's what I'm doing here :)

  • Calling init method on backing bean when JSP loads

    Hi All,
    My problem seems simple, but I'm not having much luck finding a solution.
    I have a JSF page that shows the details of an employee. So I have an employee.jsp with a backing bean EmployeeController which works fine.
    The change I need to make is this: pass in an employeeId to the URL and let my controller read it.
    I've tried the following in my faces-config.xml:
    <managed-bean>
      <managed-bean-name>exmployeeBean</managed-bean-name>
      <managed-bean-class>
        com.acme.EmployeeController
      </managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
        <property-name>employeeId</property-name>
        <value>#{requestScope.employeeId}</value>
      </managed-property>
    </managed-bean>And the following in my backing bean:
    public void setEmployeeId(String employeeId) {
      logger.info("METHOD CALLED");
      this.refreshValuesForEmployee(employeeId);
    }But I'm not having any luck (ie - this method is not being called).

    it's ok. i found out why it wasn't working.
    my scope was set to "session", but had to be "request" so that i could use the params syntax.
    thanks anyway.

  • Push messages from business logic into backing bean

    In my simple web application a table with the contents of a database table is shown to the client. Now I want this table in the browser to be updated each time the db table is updated. In my business logic a jms message is fired to a specified topic each time the db table is updated. The reverse ajax stuff needed for the client update is provided by the Icefaces jsf implementation. There is a backing bean for each session which is responsible for the server side rerendering of the client. Now my question is: How do I connect the bussiness logic firing a jms message if the db table is updated, with the backing bean?
    My thoughts:
    1. Create a message listener for the topic. Each time the message listener receives a message it notifies the backing beans of each session to rerender the client. But how does the message listener know about the backing beans?
    2. The backing bean responsible for rerendering the client adds itself as a listener. But where? As I understand it cannot be a backing bean and a jms MessageListener at the same time.
    Has anyone an idea/pattern for this problem?

    You could keep a list of beans that need to be notified in the application scope. (You should probably use weak references so that they may be garbage collected.) Then you JMS listener could get access to them.
    Somebody posted a thread recently where they were doing something very similar, you might want to try to find it.

  • 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

  • JSC2 - Disgusting backing beans question

    After manually writing jsf code for about a year I've started considering switching over to Creator 2. I am in love with the UI components and quick drag drop page creation, but I absolutely hate the backing beans that are generated. Is there a way to use only my own and get rid of all those messy bindings that are created for each component? Any help on this subject would be endlessly appreciated.
    Thank you for your time,
    - Daniel

    Hi Daniel,
    The backing bean is an integral part of the webapplication created in Creator. Could you please tell us what is the problem you are facing with the backing bean? What do you mean by only your way? Could you please elaborate.
    Cheers
    Giri

  • Set Locale with a backng bean

    I have this issue: i'm trying to set the default Locale for the web page with a backing bean wich is boud to a combobox on the page for selecting the language. So in the bean on the value change of the combobox i do this:
    Locale locale=Locale.getDefault();
    locale.setLocale(language);
    When i tried it the first time everythink worked fine, the problems comes when to users access at the same time at the web application: when i user sets the language, also the locale of the other user is automatically changed. The backing bean which is managing the language change is defned as a session bean. Do someone know why?

    The default locale is set JVM-wide and is not specific to a user's session. JSF will use the Locale specified by ExternalContext.getRequestLocale() which is determined by the HttpServletRequest object, which uses the Accept-Language header from the request.

  • Need ADF login backing bean that will work with WebSphere

    I'm working on an ADF app in the Fusion Middleware stack and have implemented a login backing bean according to this doc:
    Fusion Developer's Guide for Oracle ADF, Chapter 30: "+Enabling ADF Security in a Fusion Web Application.+"
    http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/adding_security.htm#BGBFJJJH
    However, the use of weblogic.servlet.security.ServletAuthentication requires the weblogic.jar on the classpath.
    Is there a viable alternative that is container-agnostic? Something that could work in WebSphere and WebLogic?

    Hi Frank,
    I've been following breadcrumbs this morning from http://andrejusb.blogspot.com/2011/05/oracle-webcenter-11g-ps3-adf-security.html to Bug 9444998 to the LoginBackingBean.java code referred to in in the bug fix notes. (I don't know if it's appropriate to post the code here, so I'll just refer to it.)
    It looks like that code could be reasonably generic-ized to remove the Webcenter-specific i18n code. The rest of it appears to just have a dependency on the JRF library's ServerPlatformSupportFactory in order to discover what container is being used. If the container is WAS or something else, the code does a login (and session creation, it seems) using the j_security_check servlet.
    Do you see any issues with this approach?

  • 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

  • Calling a backing bean method after load of fragment in adf

    I needed to call a backing bean method after page load of fragment in adf.
    I used the method suggested in:
    https://community.oracle.com/message/11044570
    only difference is im giving the if clause as:
    if (refreshFlag == RegionBinding.RENDER_MODEL ) {
    instead of
    if (refreshFlag == RegionBinding.PREPARE_MODEL)
    It was working fine, but page was not getting refreshed so used the code as mentioned in example:
    public void refresh() {
              FacesContext facesContext = FacesContext.getCurrentInstance();
              String refreshpage = facesContext.getViewRoot().getViewId();
              ViewHandler  viewHandler =facesContext.getApplication().getViewHandler();
              UIViewRoot viewroot =  viewHandler.createView( facesContext, refreshpage);
              viewroot.setViewId(refreshpage);
              facesContext.setViewRoot(viewroot);
    Now issue is once page is loaded and backing bean method is called, the refresh code refreshes the page and upon page load, refresh method is called again in recursive fashion.
    please advise what to do in such scenario?
    I tried to do selective refresh using some variable(also with static) but it does not help as page wont be refresh at all or page will keep refreshing recursively.

    Use clientListener on the page load event
    <af:document id=”d1″>
        <af:serverListener type=”onloadEvent”
                           method=”#{<managedbean name>.<method name>}”/>
        <af:clientListener method=”onLoadClient” type=”load”/>
        <af:resource type=”javascript”>
        function onLoadClient(event) {
          AdfCustomEvent.queue(event.getSource(),”onloadEvent”,{},false);
          return true;
        </af:resource>

  • 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

Maybe you are looking for