How to understand dynamic binding

Hello all. I need some guidance on how to understand dynamic binding.
Here are my codes:
*  fruit.java
public class fruit {
     public String type ="fruit";
     public String getType() {
          return type;
     public String getType2() {
          return getType();
*  apple.java
public class apple extends fruit {
     public String type ="apple";
     public String getType() {
          return type;
     public String getType2() {
          return super.getType2();
*  test.java
public class test {
     public static void main(String[] args) {
          apple myApple = new apple();
          System.out.println("myApple.getType2() : " + myApple.getType2());
}After running test.java I got myApple.getType2() : apple
I was told that it's because dynamic binding. I read some articles about dynamic binding but still do not understand how it works in my codes.

http://forum.java.sun.com/thread.jspa?threadID=627467&messageID=3590926

Similar Messages

  • As a JSF Developer, I want to understand technically how the JSF View Components are rendered as html and how there events are binded to Server.I want to know each Java Class that is involved in flow.

    As a JSF Developer, I want to understand technically how the JSF View Components are rendered as html and how there events are binded to Server.I want to know how flows goes to the server and server understands the method which is to be called of managed bean. I know it is with annotation @ManagedBean and method name, but how Call is binded with annotation @ManagedBean.
    In short, i want to know the internal implementation of JSF Framework.

    As a JSF Developer, I want to understand technically how the JSF View Components are rendered as html and how there events are binded to Server.I want to know how flows goes to the server and server understands the method which is to be called of managed bean. I know it is with annotation @ManagedBean and method name, but how Call is binded with annotation @ManagedBean.
    In short, i want to know the internal implementation of JSF Framework.

  • How dynamic binding implemented?

    for exmaple
    abstract class SuperClass{
          abstract void do() {}
          class SubClass1 extends SuperClass{
          void do(){//do method implemented}
          class SubClass2 extends SuperClass{
          void do(){//do method another implemented}
          SuperClass[] array = new SuperClass[2];
               array[0] = new SubClass1();
               array[1] = new SubClass2();
               array[0].do();
               array[1].do();
    I want to know how the compiler deal with "array" during compiling time,
    and how the dynamic "do()" method was found during runing time?

    You can get some hints by studying the bytecodeof
    your example.
    Generally dynamic binding is implemented using
    indirect calls via "jump tables". Binding means
    filling in the jump tables with the startaddresses
    of
    the methods as soon as they're available.~~~~~~~~~ this mean when instantiated?
    Actually I took it to mean when the class is loaded.
    Actually as soon as they are needed which isslightly
    different. ~~~~~~~ this mean when the method invoked?Basically yes.

  • Dynamic bind parameters failure

    Hi
    Ive dynamically bind parameters in view object
    JHeadstart 10.1.2.0 (build 19). The data is getting bind. But with the following error. Kindly help me.
    regards
    Jayashri
    17:30:42 DEBUG (JhsDataAction) -ViewObject programView1: value of bind param 0 set to 04
    17:30:42 DEBUG (JhsDataAction) -ViewObject programView1: value of bind param 1 set to BORE
    17:30:42 DEBUG (JhsDataAction) -ViewObject programView1: executing query, bind parameter values have changed
    05/04/01 17:30:43 java.sql.SQLException: Missing IN or OUT parameter at index:: 1
    05/04/01 17:30:43      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)
    05/04/01 17:30:43      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:174)
    05/04/01 17:30:43      at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1552)
    05/04/01 17:30:43      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2896)
    05/04/01 17:30:43      at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2942)
    05/04/01 17:30:43      at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:691)
    05/04/01 17:30:43      at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:547)
    05/04/01 17:30:43      at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3422)
    05/04/01 17:30:43      at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:663)
    05/04/01 17:30:43      at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:769)
    05/04/01 17:30:43      at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:706)
    05/04/01 17:30:43      at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3361)
    05/04/01 17:30:43      at oracle.adf.model.bc4j.DCJboDataControl.executeIteratorBindingIfNeeded(DCJboDataControl.java:803)
    05/04/01 17:30:43      at oracle.adf.model.binding.DCIteratorBinding.executeQueryIfNeeded(DCIteratorBinding.java:1587)
    05/04/01 17:30:43      at oracle.adf.model.binding.DCBindingContainer.refreshControl(DCBindingContainer.java:1544)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.applyIterBindParams(JhsDataAction.java:2785)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.prepareModel(JhsDataAction.java:3136)
    05/04/01 17:30:43      at oracle.adf.controller.struts.actions.DataAction.prepareModel(DataAction.java:486)
    05/04/01 17:30:43      at oracle.adf.controller.lifecycle.PageLifecycle.handleLifecycle(PageLifecycle.java:105)
    05/04/01 17:30:43      at oracle.adf.controller.struts.actions.DataAction.handleLifecycle(DataAction.java:223)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.handleLifecycle(JhsDataAction.java:389)
    05/04/01 17:30:43      at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:155)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:509)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    05/04/01 17:30:43      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    05/04/01 17:30:43      at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:582)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:509)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    05/04/01 17:30:43      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    05/04/01 17:30:43      at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
    05/04/01 17:30:43      at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:582)
    05/04/01 17:30:43      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
    05/04/01 17:30:43      at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
    05/04/01 17:30:43      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:509)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    05/04/01 17:30:43      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    05/04/01 17:30:43      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    05/04/01 17:30:43      at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
    05/04/01 17:30:43      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
    05/04/01 17:30:43      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
    05/04/01 17:30:43      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
    05/04/01 17:30:43      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
    05/04/01 17:30:43      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
    05/04/01 17:30:44      at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:172)
    05/04/01 17:30:44      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)
    05/04/01 17:30:44      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
    17:30:44 DEBUG (JhsDataAction) -ViewObject programView1: bind parameter values have not changed
    05/04/01 17:30:44      at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
    05/04/01 17:30:44      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
    05/04/01 17:30:44      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
    05/04/01 17:30:44      at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
    05/04/01 17:30:44      at java.lang.Thread.run(Thread.java:534)

    Hi Stevan
    I'm using JSP.
    Ive used request parameters for binding in the where clause {app_cycle=:1 and college_code='MICH'}in application structure i gave ${param.appcycle},${param.collegecode} , which the page is loaded successfully. Dont know how did that error got cleared. Anyway now session is the problem.
    I want to use session and not request parameters.
    How to achieve this. I dont understand the help give in the query bind parameters tab in application structure file. It says ${MyObject.MyParameter}
    in Jsp session is the object. Assuming that i gave ${session.appcyle} where appcycle is the parameter which holds the value. But it didnt work
    Kindly help on this.
    regards
    Jayashri
    regards
    Jayashri

  • Dynamic Binding on BC4J bound UIX forms

    Hi
    I'm attempting to use Dynamic Binding in my ADF UIX forms to determine whether to render certain fields on a form depending on the data in the current row.
    Now, I completely understand how to bind the rendered="" attribute with a bound value determined by a static accessor to a bean, but the problem I am having is how to access the current row from my BC4J appModule.
    The datascope beans only have access to the RenderingContext in the following manner:
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <data name="generic">
    <method class="com.xxx.eim.tools.SetupFormDataBinder" method="getSetupState"/>
    </data>
    </provider>
    The accessor:
    public class SetupFormDataBinder {
    static public Object getSetupState ( RenderingContext context
    , String namespace
    , String name
    return new SetupFormBean(context);
    which calls my bean.
    But, the RenderingContext class does not seem to offer any accessors to the BC4J Configuration or similar.
    So, how can I get to the data in the background...
    Or, is this a poor way of doing it.... Can anyone offer any suggestions???
    Cheers
    Chris

    You should scope your application module before entering dataScope:
            <bc4j:rootAppModuleScope name="EhiskommAM">
              <contents>
                <dataScope>
                   <provider>
                      <data name="someData">
                        <method class="test.Test" method="getData"/>
                      </data>
                   </provider>
                   <contents>
                   </contents>
                </dataScope>
              </contents>
            </bc4j:rootAppModuleScope>And remember to add app. module to the page definitions:
    <page ....>
      <bc4j:registryDef>
        <bc4j:rootAppModuleDef name="AppModule" definition="test.AppModule" releaseMode="stateful">
        </bc4j:rootAppModuleDef>
      </bc4j:registryDef>
    </page>
    Alexey.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to Use Dynamic SQL

    Can anybody please send me a small program on How to Use Dynamic SQL.
    How to execute and run give details.
    Thanks
    null

    You can certainly use the INTO (and USING) clauses of EXECUTE IMMEDIATE to pass in and return data, i.e.
    EXECUTE IMMEDIATE sqlStmt
      USING variable1, variable2
       INTO output1, output2The more complex the statement, however, the more appropriate DBMS_SQL is. DBMS_SQL also has the potential to allow you to use bind variables rather than reparsing the statement many times.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Dynamic binding of items in sap.m.Table using XML views

    Dear SAPUI5 guru's,
    Let's start by saying I'm an ABAP developer who's exploring SAPUI5, so I'm still a rookie at the time of writing. I challenged myself by developing a simple UI5 app that shows information about my colleagues like name, a pic, address data and their skills. The app uses the sap.m library and most of the views are XML based which I prefer.
    The data is stored on an ABAP system and exposed via a gateway service. This service has 2 entities: Employee and Skill. Each employee can have 0..n skills and association/navigation between these 2 entities is set up correctly in the service. The data of this service is fetched from within the app using a sap.ui.model.odata.ODataModel model.
    The app uses the splitApp control which shows the list of employees on the left side (master view). If a user taps an employee, the corresponding details of the employee entity are shown on the right (detail view).
    Up till here everything is fine but I've been struggling with my latest requirement which is: show the skills of the selected employee in a separate XML view when the user performs an action (for the time being, I just created a button on the detail view to perform the action). After some hours I actually got it working but I doubt if my solution is the right way to go. And that's why I'm asking for your opinion here.
    Let's explain how I got things working. First of all I created a new XML view called 'Skills'. The content on this view is currently just a Table with 2 columns:
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
      controllerName="com.pyramid.Skills" xmlns:html="http://www.w3.org/1999/xhtml">
      <Page title="Skills"
           showNavButton="true"
           navButtonPress="handleNavButtonPress">
      <content>
      <Table
       id="skillsTable">
      <columns>
      <Column>
      <Label text="Name"/>
      </Column>
      <Column>
      <Label text="Rating"/>
      </Column>
      </columns>
      </Table>
      </content>
      </Page>
    </core:View>
    The button on the Detail view calls function showSkills:
    showSkills: function(evt) {
      var context = evt.getSource().getBindingContext();
      this.nav.to("Skills", context);
      var skillsController = this.nav.getView().app.getPage("Skills").getController();
      skillsController.updateTableBinding();
    Within 'this.nav.to("Skills", context);' I add the Skills view to the splitApp and set its bindingContext to the current binding context (e.g. "EmployeeSet('000001')"). Then I call function updateTableBinding in the controller of the Skills view which dynamically binds the items in the table based on the selected employee. So, when the ID of the selected employee is '000001', the path of the table's item binding should be "/EmployeeSet('000001')/Skills"
    updateTableBinding: function(){
      var oTemplate = new sap.m.ColumnListItem(
      {cells: [
              new sap.m.Text({text : "{Name}"}),
              new sap.m.Text({text : "{Rating}"})
      var oView = this.getView();
      var oTable = oView.byId("skillsTable");
      var oContext = oView.getBindingContext();
      var path = oContext.sPath + "/Skills";
      oTable.bindItems(path, oTemplate);
    Allthough it works fine, this is where I have my first doubt. Is this the correct way to bind the items? I tried to change the context that is passed to this.nav.to and wanted it to 'drill-down' one level, from Employee to Skills, but I couldn't manage to do that.
    I also tried to bind using the items aggregation of the table within the XML declaration (<Table id="skillsTable" items="{/EmployeeSet('000001')/Skills}">). This works fine if I hard-code the employee ID but off course this ID needs to be dynamic.
    Any better suggestions?
    The second doubt is about the template parameter passed to the bindItems method. This template is declared in the controller via javascript. But I'm using XML views! So why should I declare any content in javascript?? I tried to declare the template in the XML view itself by adding an items tag with a ColumnListItem that has an ID:
                    <items>
                        <ColumnListItem
                        id="defaultItem">
                        <cells>
                            <Text text="{Name}"/>
                            </cells>
                            <cells>
                            <Text text="{Rating}"/>
                            </cells>
                        </ColumnListItem>
                    </items>
    Then, in the updateTableBinding function, I fetched this control (by ID), and passed it as the template parameter to the bindItems method. In this case the table shows a few lines but they don't contain any data and their height is only like 1 mm! Does anyone know where this strange behaviour comes from or what I'm doing wrong?
    I hope I explained my doubts clearly enough. If not, let me know which additional info is required.
    Looking forward to your opinions/suggestions,
    Rudy Clement.

    Hi everybody,
    I found this post by searching for a dynamic binding for well acutally not the same situation but it's similar to it. I'm trying to do the following. I'm having a list where you can create an order. On the bottom of the page you'll find a button with which you're able to create another order. All the fields are set to the same data binding ... so the problem is if you've filled in the values for the first order and you'll press the button you'll get the same values in the second order. Is it possible to generate a dynamic binding?
    I'm going to post you a short code of what I'm meaning:
    <Input type="Text" value="{path: 'MyModel>/Order/0/Field1'}" id="field1">
         <layoutData>
                    <l:GridData span="L11 M7 S3"></l:GridData>
               </layoutData>
    </Input>
    As you can see I need to set the point of "0" to a dynamic number. Is there any possibility to reach this???
    Hope you can help
    Greetings
    Stef

  • FTP how to pass dynamic filename/directory location - reading a file in 11g

    Hi All,
    We r using FTP adapter(SOA 11g) for getting files in remote server, May i know how to pass dynamic filename and directory where the file exists for reading in server.
    Thanks,
    Rak

    Hey according to my understanding, the Dynamic partner links are set only for the Outbound invocations only. Is my understanding right? if so, how do we create the dynamic partnerlinks for the ftp get kind of stuff...??
    Thanks in advance

  • APEX:How to put dynamic buttons in a Report.

    Hello all,
    I am creating one application in which i want two buttons in every record. I can't put it manually because it should change according to records in a table So Can anyone tell me how to put dynamic buttons in a report.
    Thanks & Regards,
    Jiten Pansara

    Hi Jiten,
    you cannot create buttons in the report, but you can always create link columns with some css class to show it as button.
    So in the both link column report attributes you will have class="button1" and class="button2"
    And in dynamic actions you need to bind the events based on your link column's jquery selector like:
    .button1
    .button2Thanks

  • How can I dynamically specify a Column Name in a Where Clause of a DB

    I have a page that query the Database based on the column Name and values entered by the user. on this page I have a drop down list of all the Column names and a text field. The user can choose from any of the dropdown list option to set the column Name and also enter a value.How can I dynamically pass the option choosed by the user from the drop down list to the dataProvider in seesionBean1 as a column Name???Help

    Hi,
    This is a working example of a search form.
    In the JSP page we have several texts box, a table bound to a DataProvider with the rowSet in the SessionBean and a search button.
    JSP source:
                    <ui:body binding="#{PackageAirtime.body1}" id="body1">
                        <ui:form binding="#{PackageAirtime.form1}" id="form1">
                            <table border="0">
                                <tr>
                                    <td>
                                        <table border="0" width="100%">
                                            <tr>
                                                <td>
                                                    <ui:label binding="#{PackageAirtime.pageTitle}" id="pageTitle" text="Package Airtime"/>
                                                    <br/>
                                                    <br/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <table border="0" cellpadding="2" cellspacing="2">
                                                        <tr>
                                                            <td>Package ID:</td>
                                                            <td>
                                                                <ui:textField binding="#{PackageAirtime.textPackageID}"
                                                                    id="textPackageID"/>
                                                                <ui:button
                                                                    binding="#{PackageAirtime.buttonPackageID}" id="buttonPackageID"
                                                                    onClick="handlePackageIDPopup(); return false;" text="..." toolTip="Open package locator"/>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td>Airtime Code:</td>
                                                            <td>
                                                                <ui:textField binding="#{PackageAirtime.textAirtimeCode}"
                                                                    id="textAirtimeCode"/>
                                                                <ui:button
                                                                    action="#{PackageAirtime.buttonAirtimeCode_action}"
                                                                    binding="#{PackageAirtime.buttonAirtimeCode}" id="buttonAirtimeCode"
                                                                    onClick="handleAirtimeCodePopup(); return false;" text="..." toolTip="Open airtime code locator"/>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td></td>
                                                            <td>
                                                                <ui:button action="#{PackageAirtime.searchButton_action}" binding="#{PackageAirtime.searchButton}"
                                                                    id="searchButton" text="Search" toolTip="Search records"/>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                    <br/>
                                                    <ui:staticText binding="#{PackageAirtime.staticTextSearchResults}" id="staticTextSearchResults"/>
                                                    <br/>
                                                    <ui:table binding="#{PackageAirtime.searchResults}" id="searchResults" paginationControls="true">
                                                        <script>
    /* ----- Functions for Table Preferences Panel ----- */
    * Toggle the table preferences panel open or closed
    function togglePreferencesPanel() {
      var table = document.getElementById("form1:table1");
      table.toggleTblePreferencesPanel();
    /* ----- Functions for Filter Panel ----- */
    * Return true if the filter menu has actually changed,
    * so the corresponding event should be allowed to continue.
    function filterMenuChanged() {
      var table = document.getElementById("form1:table1");
      return table.filterMenuChanged();
    * Toggle the custom filter panel (if any) open or closed.
    function toggleFilterPanel() {
      var table = document.getElementById("form1:table1");
      return table.toggleTableFilterPanel();
    /* ----- Functions for Table Actions ----- */
    * Initialize all rows of the table when the state
    * of selected rows changes.
    function initAllRows() {
      var table = document.getElementById("form1:table1");
      table.initAllRows();
    * Set the selected state for the given row groups
    * displayed in the table.  This functionality requires
    * the 'selectId' of the tableColumn to be set.
    * @param rowGroupId HTML element id of the tableRowGroup component
    * @param selected Flag indicating whether components should be selected
    function selectGroupRows(rowGroupId, selected) {
      var table = document.getElementById("form1:table1");
      table.selectGroupRows(rowGroupId, selected);
    * Disable all table actions if no rows have been selected.
    function disableActions() {
      // Determine whether any rows are currently selected
      var table = document.getElementById("form1:table1");
      var disabled = (table.getAllSelectedRowsCount()>0)?false : true;
      // Set disabled state for top actions
      document.getElementById("form1:table1:tableActionsTop:deleteTop").setDisabled(disabled);
      // Set disabled state for bottom actions
      document.getElementById("form1:table1:tableActionsBottom:deleteBottom").setDisabled(disabled);
    }</script>
                                                        <f:facet name="title">
                                                            <ui:staticText binding="#{PackageAirtime.table1Title}" id="table1Title" text="Package Airtime search results"/>
                                                        </f:facet>
                                                        <ui:tableRowGroup binding="#{PackageAirtime.tableRowGroup1}"
                                                            emptyDataMsg="No records matching the search criteria" id="tableRowGroup1"
                                                            sourceData="#{PackageAirtime.s23_package_airtimeDataProvider}" sourceVar="currentRow">
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn1}" headerText="Package ID" id="tableColumn1" sort="S23_PACKAGE">
                                                                <ui:staticText binding="#{PackageAirtime.staticText1}" id="staticText1" text="#{currentRow.value['S23_PACKAGE']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn2}" headerText="Airtime Code" id="tableColumn2" sort="S23_AT_CODE">
                                                                <ui:staticText binding="#{PackageAirtime.staticText2}" id="staticText2" text="#{currentRow.value['S23_AT_CODE']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn7}" headerText="Prepaid Value" id="tableColumn7">
                                                                <ui:staticText binding="#{PackageAirtime.staticText6}" id="staticText6" text="#{currentRow.value['SUBR_AT_PREPAID_PERIOD_VAL']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn8}" headerText="Prepaid Type" id="tableColumn8">
                                                                <ui:staticText binding="#{PackageAirtime.staticText7}" id="staticText7" text="#{currentRow.value['SUBR_AT_PREPAID_TYPE']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn4}" headerText="Start" id="tableColumn4" sort="PRSM_PK_START">
                                                                <ui:staticText binding="#{PackageAirtime.staticText3}" id="staticText3" text="#{currentRow.value['PRSM_PK_START']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn5}" headerText="End" id="tableColumn5">
                                                                <ui:staticText binding="#{PackageAirtime.staticText4}" id="staticText4" text="#{currentRow.value['PRSM_PK_END']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn6}" headerText="Units" id="tableColumn6">
                                                                <ui:staticText binding="#{PackageAirtime.staticText5}" id="staticText5" text="#{currentRow.value['PRSM_PK_UNITS']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn9}" headerText="Carry-over limit" id="tableColumn9" valign="Top">
                                                                <ui:staticText binding="#{PackageAirtime.staticText8}" id="staticText8" text="#{currentRow.value['ROM_PLAN_CARRY_LMT']}"/>
                                                            </ui:tableColumn>
                                                            <ui:tableColumn binding="#{PackageAirtime.tableColumn3}" headerText="Details" id="tableColumn3" width="100">
                                                                <ui:hyperlink action="#{PackageAirtime.viewpackageAT_action}" binding="#{PackageAirtime.hyperlink1}"
                                                                    id="hyperlink1" text="View"/>
                                                            </ui:tableColumn>
                                                        </ui:tableRowGroup>
                                                    </ui:table>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                            </table>
                        </ui:form>
                    </ui:body>
    ...JAVA source:
        public void prerender() {
            search_action();
        public String search_action() {
            try {
                String command = "SELECT s23_package, s23_at_code, prsm_pk_start, prsm_pk_end,  prsm_pk_units, subr_at_prepaid_period_val,  subr_at_prepaid_type, subr_disc_type, subr_disc_rate,  subr_disc_value, subr_disc_perm,  subr_at_prepaid_bill_per_val, subr_at_prepaid_recurring,  s23_package_fwd, s23_at_code_fwd, prsm_pk_start_fwd,  subr_ppa_infinite, subr_ppa_carry_over, rom_plan_carry_lmt  FROM s23_package_airtime, ROM_23_PPLAN_COMP  where rom_23_pack_plan = s23_package";
                String where = "";
                String packageID = (String)textPackageID.getText();
                if (packageID == null) {
                    packageID = "";
                packageID = packageID.replace("'", "''");
                if (packageID != "") {
                    if (where != "") {
                        where += " AND ";
                    where += "upper(S23_PACKAGE) LIKE upper('" + packageID + "%')";
                String airtimeCode = (String)textAirtimeCode.getText();
                if (airtimeCode == null) {
                    airtimeCode = "";
                airtimeCode = airtimeCode.replace("'", "''");
                if (airtimeCode != "") {
                    if (where != "") {
                        where += " AND ";
                    where += " upper(S23_AT_CODE) LIKE upper('" + airtimeCode + "%')";
                if (where != "") {
                    command += " AND " + where;
                this.getSessionBean1().getS23_package_airtimeRowSet().setCommand(command);
                this.staticTextSearchResults.setText(tdi.business.Utils.getRowCountMessage(s23_package_airtimeDataProvider.getRowCount()));
            catch (Exception e) {
                log("Error during search for packages airtime", e);
            return null;
        public String searchButton_action() {
            search_action();
            this.tableRowGroup1.setFirst(0);
            return "";
        }I put the search_action() call in the prerender() to have data in my table when the page is open. For a large resultset the best aproach is to let the user select some search criteria and then call the search_action() using a button (searchButton_action() ).
    I've added a hyperlink column to my table, it is used to display the current record details in a new page.
    I have defined in my SessionBean a getRowkey/setRowkey methods.
    When the user click on a "View" hiperlink the following code is executed:
        public String viewpackageAT_action() {
            RowKey row = tableRowGroup1.getRowKey();
            this.getSessionBean1().setPackageAirtimeRowKey(row);
            return "packageairtime_details";
        }I will step over the "Page Navigation".
    In the Detail Page I have the following code:
        public void init() {
           this.s23_package_airtimeDataProvider.setCursorRow(this.getSessionBean1().getPackageAirtimeRowKey());
    }Now I have the detail page opened and also the DataProvider opened at the saved RowKey value.
    Finally, in the SessionBean:
         * Holds value of property packageAirtimeRowKey.
        private RowKey packageAirtimeRowKey;
         * Getter for property packageAirtimeRowKey.
         * @return Value of property packageAirtimeRowKey.
        public RowKey getPackageAirtimeRowKey() {
            return this.packageAirtimeRowKey;
         * Setter for property packageAirtimeRowKey.
         * @param packageAirtimeRowKey New value of property packageAirtimeRowKey.
        public void setPackageAirtimeRowKey(RowKey packageAirtimeRowKey) {
            this.packageAirtimeRowKey = packageAirtimeRowKey;
        }Note: You should enable page navigation in the result(s) table.
    That's about it :)
    Hope this helps,
    Catalin Florean.

  • How to make dynamic search items in a report?

    Hi all,
    I have two questions.
    1. How to make dynamic search (i.e without GO button) field above report to provide dynamic search by words in one field of report query?
    2. How to make similar multiply dynamic search fields on report to provide individual search by selected fields of report with refine capability (i.e any search conditions in different fields must work together as complex WHERE clause)
    Thanks in advance

    hey yuri--
    if i'm understanding your questions correctly, the easiest way to achieve the functionality you're after is to have your query criteria fields submit the page when values are entered/selected. the page should then branch back to itself using the submitted criteria in the query. because you're asking about dynamically adding in your where clause predicates, you should consider using a report region of type "SQL Query (Pl/sql Function Body Returning SQL Query)". that way you can use pl/sql to piece together your query based on the provided criteria.
    so the part of your question i'm not sure of is when your page should submit itself ("without a GO button" as you said). for your first question, it seems to be a simple matter of javascript. you want users to be able to enter search criteria into a field and have that criteria be using in the report. to facilitate that we have a few self-submitting item types such as "SelectList with Submit" and "Text Field (always submits page when Enter pressed)". for your second question, it seems that you should have a Go button for the user to indicate he's done entering in his query criteria. anyhow, that's up to you, i suppose. hopefully this response will give you the concepts you need to implement this as you'd like.
    regards,
    raj
    ps-after re-reading your post, i now realize there's a chance that you wanted users to not have to submit the page at all when filtering their result sets. if that's the case, you'd have to use javascript for that cumbersome feat. google would be a good place to go for that code.

  • Dynamically Binding to Dynamically Create View

    I tried to copy the code of “Dynamically Binding to Dynamically Create View object” but something is wrong because when I am debbuging it doesn’t work after the sentence vo.executeQuery();
    I suspect that the reason could be how I created the view..
    Your code is running well but not mine.
    It shows this error
    •     JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
    •     null
    I don’t know why because the code is the same.
    How did you create the objet view ?
    Could you help me?

    I'd recommend checking out this article on Debugging ADF Applications:
    http://www.oracle.com/technology/products/jdev/tips/muench/debugger/index.html
    and then reporting here the full stack trace using the tips described in that article.

  • Dynamic binding of partner links with different payloads

    In dynamic binding of partner links, can we have different payloads for different
    webservices ?

    Hi Marc,
    I have one question regarding the use of <xsd:anyType>, Before that let me clear our requirement. We are trying to create a BPEL flow (Consumer) which has the ability to call other webservices (Producers) dynamically. There can be a number of Producer Webservices performing the same task. The end user should be able to add new Producer Webservices and remove already existing ones. We achieved this using EndPointReference (http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html) but the problem with this approach is that all the producer webservices have to work on a common schema. We want to support webservices working on different payloads.
    My understanding is that when we map the XML document to xsd:anyType in the service's WSDL file, the producer web service need to have an implementation of this type in for of a java class. Is this correct ? Or can we provide the java implementation in our code itself? Can you please point me to some detail documentation on xsd:anyType?
    Thanks

  • Dynamic binding problem

    I have a problem, i want to use a extend to arraylist to implement different validation to objects. So i added a method add(Person person), dynamic binding, but it has a incorrect behavior, i think
    import java.util.ArrayList;
    import java.util.Collection;
    public class Test {
         class MyList extends ArrayList {
              public boolean add(Object arg0) {
                   System.out.println("add norm");
                   return super.add(arg0);
              public boolean add(Person arg0) {
                   System.out.println("add person");
                   return super.add(arg0);
         class Person{
         public static void main(String[] args) {
              new Test().test();
         private void test() {
              Collection col1 = new MyList();
              col1.add(new Person());
              ArrayList col2 = new MyList();
              col2.add(new Person());
              MyList col3 = new MyList();
              col3.add(new Person());
    }My output=
    add norm
    add norm
    add person
    My wanted output
    add person
    add person
    add person
    Why?

    in case you don't understand why you're getting "addning norm"
    you are using polymorphism. You declared your objects to be of type Collection and ArrayList. This means you can only use methods of those type, eventhough the underlying object is a MyList instance. Now, Collections and ArrayList class only have the add(Object obj) method signature....so, when you say add(new Person()), it will only see add(Object obj)
    When you declared your object as MyList, then it see add(Person p), so it use the add(Person p) method.

  • 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

Maybe you are looking for