Scope of managed bean for a modifiable list

I have a business entity set stored in database. I want to show them with JSF as elements of a list with each element having a delete button. If the database changes in the background because entitites are removed or inserted, the delete function certainly must work well.
I'm clear of the key stuff I have to use:
-a managed bean, probably containing some list coming from database through dao or o/r mapper.
-some iterator, e.g. t:dataList (using Tomahawk)
-h:commandButton with action referring to methods in the managed-bean's elements.
The question is, what usually would be the scope of the managed-bean.
If the scope is "request", delete function may work wrong when database changes between the first and the "delete" request.
-First request: managed-bean created with ids and event handlers.
-Database changes: new entity is inserted.
-Secont request: managed-bean created with id-s and event handlers according to the new database content. id-s have been shifted.
It may help if I override somehow the default id generation of the JSF, by using directly id-s of business entities but I think it's an unproposed hack.
If the scope of the managed bean is "session", the delete function works well, however we've a lot of stuff to store in the session.
So, what would be the scope of the managed-bean?
Or a completely different approach should be used?

hi,
faces-config:---------
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<!-- ***************Country************-->
<managed-bean>
<managed-bean-name>countryMBean</managed-bean-name>
<managed-bean-class>com.tnhsp.mbeans.CountryMBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<!-- ***************country************-->
<navigation-case> <!-- DEfault mode - Fetches all data in datatable -->
<from-outcome>fetch_country</from-outcome>
<to-view-id>/hospitalAdmin/country/countryDisplayContent.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case> <!-- Displayes the screen to add data -->
<from-outcome>add_country</from-outcome>
<to-view-id>/hospitalAdmin/country/countryCreateContent.jsp</to-view-id>
<redirect/>
</navigation-case>
</faces-config>
MBEAN:-----
public class CountryMBean {
@EJB
CountrySRemote countrySRemote;
private Country country = new Country();
public CountryMBean() {
System.out.println("countryMBean.countryMBean()");
country = new Country();
fc = FacesContext.getCurrentInstance();
public String actionAdd() {
renderFlag = 1;
errorStatus = "";
System.out.println("countryMBean. - actionadd");
retValue = "add_country";
setLinkMode(ADD_MODE");
setDisableCodeField("false");
saveStatus = "false";
listEmptyStatus = "false";
country = new Country();
Date dt = new Date();
country.setEffectFromDt(dt);
country.setCreatedDate(dt);
country.setLastUpdatedDate(dt);
country.setCreatedUser("user");
country.setLastUpdatedUser("user");
System.out.print("returning from actionadd");
return retValue;
Please help.

Similar Messages

  • How to attach simple Spring code as managed bean into amx:listView (list view in adf mobile application)

    I found very simple code to fetch facebook feed here:
    3.&amp;nbsp;Facebook API Binding
    it uses Spring Framework. I already added spring support into jDeveloper.
    code to fetch feed is something like this:
    String accessToken = "f8FX29g..."; // access token received from Facebook after OAuth authorization
    Facebook facebook = new FacebookTemplate(accessToken);
    List<Post> feed = facebook.feedOperations().getFeed();
    I created managed bean for my amx:listView - Facebook.java. And inserted this code. But of course it is not enough. I need somehow to add spring managed bean (not like mine).
    Can you help me with that?

    Thanks for your answer. But its too wasteful for my app to run additional server. My app is very simple so i do not need server side. May be there is another way, without Spring. I mean something simpler then raw JDK 1.4 - some ready-made tool for the needs of these?
    Thanks in advance

  • One Managed Bean for a set of pages

    Can I have one Managed Bean (request scope) for a set of pages using Creator? Or should I have one Managed Bean for each page?
    Thanks in advance,
    Juan

    Hi,
    Please take a look at the following threads:
    http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=51481
    http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=54165
    http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=51912
    Hope this hepls
    Regards,
    Rk.

  • Data Palette not showing Managed Beans for Dynamic Web Project, JSF 2.1

    Hello.
    I have a problem in OEPE (oepe-juno-distro-win32.zip), where the Data tab in Palette shows no Managed Beans,
    even if I created them in the ManagedBeans in faces-config.xml using the Faces Config Editor.
    I have created a Dynamic Web Project with these Facets:
    Dynamic Web Module 3.0
    Java 1.7 (JDK 1.7_21)
    Java Annotation Processing Support 5.0
    JavaScript 1.0
    JavaServer Faces 2.1
    JSTL 1.2
    Oracle WebLogic Web App Extensions 12.1.1
    I am using Oracle WebLogic Server 12c 12.1.1 zip distribution for hosting the application.
    For example, I have a UserBean Managed Bean of Session scope, that has 3 String fields
    and the respective getters and setters.
    I create a "test.jspx" file, and from the Palette -> Tags tab -> JSF HTML I drag a Form into
    the new file so I can connect it to UserBean and generate a form to enter its details.
    I select the "Generate a form tag and content from data" and in the Choose Bean dialog
    there is none of my Beans.
    What could be the problem?
    Thanks in advance.
    Edited by: 997841 on Apr 30, 2013 6:09 PM
    I forgot to mention the Oracle WebLogic Web App Extensions version 12.1.1 and that also
    for JSF 2.1 the "sub-directory" Faces Configuration below the project in Project Explorer is not
    existent, as in projects created with earlier versions of JSF.

    Yes, they are both listed under the WebLogic System Libraries.
    This is the content of .classpath file when using WebLogic System Library:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
         <classpathentry kind="src" path="src"/>
         <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/Oracle WebLogic Server 12c (12.1.1) JRE">
              <attributes>
                   <attribute name="owner.project.facets" value="java"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="src" path=".apt_src">
              <attributes>
                   <attribute name="optional" value="true"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="con" path="oracle.eclipse.tools.weblogic.lib.system">
              <attributes>
                   <attribute name="owner.project.facets" value="jst.web"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
         <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
         <classpathentry kind="con" path="oracle.eclipse.tools.weblogic.lib.shared/jstl/exact/1.2"/>
         <classpathentry kind="output" path="build/classes"/>
    </classpath>
    And this is the content when using User Library with Mojarra:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
         <classpathentry kind="src" path="src"/>
         <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/Oracle WebLogic Server 12c (12.1.1) JRE">
              <attributes>
                   <attribute name="owner.project.facets" value="java"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="src" path=".apt_src">
              <attributes>
                   <attribute name="optional" value="true"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="con" path="oracle.eclipse.tools.weblogic.lib.system">
              <attributes>
                   <attribute name="owner.project.facets" value="jst.web"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
         <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
         <classpathentry kind="con" path="oracle.eclipse.tools.weblogic.lib.shared/jstl/exact/1.2"/>
         <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JSF 2.1 (Mojarra 2.1.6-FCS)">
              <attributes>
                   <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
                   <attribute name="owner.project.facets" value="jst.jsf"/>
              </attributes>
         </classpathentry>
         <classpathentry kind="output" path="build/classes"/>
    </classpath>

  • Seriously stuck on managed bean for tree

    Hello,
    I've been trying for two days to figure out how to get selectable links on my tree, so I'm hoping someone can help me.
    I've gotten lots of advice from people here and from tutorials, but everybody giving it is so advanced that they miss the simple things that I don't know how to do.
    I'm trying to follow this tutorial:
    http://technology.amis.nl/blog/?p=2094
    And already I've reached two problems.
    My first is that I don't seem to have the package nl.amis.adffaces.tree which is used in the first grey code section on that page.
    The second problem is that I don't understand where to type the code that is in the grey.
    So I have a few specific questions and I really hope someone can help me out.
    1. How do I get the package nl.amis.adffaces.tree ?
    2. Where do I put that first code? If it's a managed bean or a class or whatever, can you please tell me how to make that, because I don't know how.
    3. Am I following the right tutorial? I just want the folders and nodes on my tree to be selectable and show the details in a separate table on the page.
    4. Once I can figure out how to make a managed bean, how do I connect my tree to it? I was told to click binding but that only gives options for the rules that decide the nodes of the tree.
    Thanks again,
    Nelson

    Ah yes, thanks!
    That and Shay's post in my other thread (Tree Drill Down for people searching this later)
    have really helped me. I have my binding set up properly and everything now!
    I've just got some problems with errors in my selectCurrentRowWithKey actions.
    It's a bit confusing in the link but if I have more than one primary key for a view, then it will send ALL of them when I use an action like that, right?
    Because I have a view link that links the node in my tree to another view that is shown in a table, but I get an error saying it can't find the key [2 2 1204] when really (I think) it should only be trying to pass [1204].

  • Manage bean for pop up getting called when parent screen is getting loaded

    Hi,
    I have designed two jspx . One having pop up code and other one (parent) from which the pop up will open. Problem is after I have put the pop up code in my Perent screen both the manage beans are getting invoked when parent screen is getting rendered which i dont want . Please help me out regarding how to avoid this?

    where did you register the managed Beans ?
    Which version of Jdev do you use ?
    Also how did you include your popup code in the jpsx - by jsp include or by using regions ?

  • Need a common manage bean for page and its fragments

    Hi,
    I'm using Jdev 11.1.2.3.0. I have a page and its fragments (i using <af:region> to include these fragments).
    I want to create a mutual bean used for that page and its fragments.
    Beause my page fragments are contained in other BTF, so i cannot use PageFlow Bean scope and
    I don't want to use session scope and application scope.
    Could someone have any ideas ?
    Thank you.

    Hi Frank,
    I used Shared DC, but now I got an issue
    I have <af:panelGroupLayout> in my page fragment and i want to bind it to RichPanelGroupLayout in my common bean (already create Data Control for this bean).
    I cannot do this, I just can bind attributes of RichPanelGroupLayout to my page fragment.
    Do you have any ideas? Can we bind directly RichPanelGroupLayout in DC to page fragment like this: <af:panelGroupLayout id="panelGroupLayout11" layout="scroll" *binding="#{bindings.panelGroupLayout}"* ...
    Thank you very much
    Thanh Hoang

  • Enterprise Manager Bean (for BC4J)

    Hi all,
    Does anyone know who would be the correct person to talk to about the BC4J EM Bean? I got various responses at OracleWorld; apparently the integration of this bean was overseen by the EM team but actually developed by another (makes sense). Only thing is I'm not sure if the glitch I'm seeing is EM acting up or the bean (I suspect the bean). I'm getting odd behaviour in certain cases and would like to discuss it further w/ someone who is familiar w/ the implementation. I dread logging this as a TAR...
    Thanks in advance,
    /SFL

    DB Control Repository is needed to run EM. To create it you can use emca or dbca command.
    See http://download-west.oracle.com/docs/pdf/B12013_01.pdf
    Paul

  • Problem with Action binding for a command button in a Managed Bean

    Hi
    Thank you for reading my post
    I am trying to use a backing bean for a button action binding.
    I followed all steps as they seems to be correct. i did not made any changes directly by hand , all of changes are introduced by oracle
    Jdeveloper wizards. but now i get this exception
    Managed bean is defined in faces-config.xml (it shows in preview mode) , the method is there in managed bean (Jdeveloper itself create the method i just enter its name)
    can you please take a look and tell me what can be wrong?
    thanks
    here is method and its body in managed bean
    public String userAccept_action() {
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding =
                bindings.getOperationBinding("Commit");
            Object result = operationBinding.execute();
            if (!operationBinding.getErrors().isEmpty()) {
                return null;
            return null;
        }here is the exception that i recive
    javax.faces.FacesException: #{ButtonActions.userAccept_action}: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: The scope of the referenced object: '#{bindings}' is shorter than the referring object
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
         at oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401)
         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
         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[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.adf.share.security.authentication.AuthenticationFilter.handleAuthentication(AuthenticationFilter.java:177)
         at oracle.adf.share.security.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:112)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at webui.common.CharacterEncoding.doFilter(CharacterEncoding.java:26)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:105)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:167)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:415)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: The scope of the referenced object: '#{bindings}' is shorter than the referring object
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:190)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
         at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:143)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
         ... 34 more
    Caused by: javax.faces.FacesException: javax.faces.FacesException: The scope of the referenced object: '#{bindings}' is shorter than the referring object
         at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:292)
         at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
         at oracle.adfinternal.view.faces.el.AdfFacesVariableResolver.resolveVariable(AdfFacesVariableResolver.java:40)
         at oracle.adfinternal.view.faces.model.VariableResolverUtils$JspResolver.resolveVariable(VariableResolverUtils.java:79)
         at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:145)
         at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
         at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
         ... 37 more
    Caused by: javax.faces.FacesException: The scope of the referenced object: '#{bindings}' is shorter than the referring object
         at com.sun.faces.config.ManagedBeanFactory.evaluateValueBindingGet(ManagedBeanFactory.java:911)
         at com.sun.faces.config.ManagedBeanFactory.setPropertiesIntoBean(ManagedBeanFactory.java:567)
         at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:253)
         at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:282)
         ... 43 more

    Thank you for reply , but it does not helps or maybe i did not apply it correctly
    here is faces-config.xml code snippet :
    <managed-bean>
        <managed-bean-name>ButtonActions</managed-bean-name>
        <managed-bean-class>webui.common.actionListener.ButtonAction</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
          <property-name>bindings</property-name>
          <value>#{bindings}</value>
        </managed-property>
      </managed-bean>here is binding for the button in jsp file :
    <af:commandButton
                                    text="#{res['button.accept']}"
                                    disabled="#{!bindings.Commit.enabled}"
                                    action="#{ButtonActions.userAccept_action}"/>and here is some code portion of ButtonAction class
    package webui.common.actionListener;
    import oracle.binding.BindingContainer;
    import oracle.binding.OperationBinding;
    public class ButtonAction {
        private BindingContainer bindings;
        public ButtonAction() {
        public BindingContainer getBindings() {
            return this.bindings;
        public void setBindings(BindingContainer bindings) {
            this.bindings = bindings;
        public String userAccept_action() {
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding =
                bindings.getOperationBinding("Commit");
            Object result = operationBinding.execute();
            if (!operationBinding.getErrors().isEmpty()) {
                return null;
            return null;
    }and i still get the same error.

  • Managed Bean Help for Definition Help

    I am working on creating Managed Bean Help for Definition Help as described in ‘19.5.3 How to Create Managed Bean Help’ section of the Web User Interface Developer's Guide fpr ADF. Using JDev Version 11.1.2.1.0.
    Thought I had all the artifacts assembled but when I run the log message is: <ELHelpProvider> <_getTranslationMap> ELHelpProvider's helpSourceExpression is null.
    Any suggestions would be greatly appreciated.
    Here is the managed bean:
    public class ELHelpProviderProjRequest extends ELHelpProvider {
        public ELHelpProviderProjRequest() {       
        /* To use the HelpProvider, the EL expression in the helpTopicId attribute must point to a Map, otherwise
           * you will get a coerceToType error. */
        public Map<String, String> getHelpMap()
              Iterator iterator = _HELP_MAP.entrySet().iterator();                
              while(iterator. hasNext()){       
              System.out.println("hash map entry " + iterator.next());
            return _HELP_MAP;
        static private final Map<String, String> _HELP_MAP = new HashMap<String, String>();
            static {
              // each element [put] can be for a separate helpTopicId attribute
              _HELP_MAP.put("MAPHELP_CATEGORY_CAPITAL_DEFINITION", "Map value for credit card definition");
              _HELP_MAP.put("MAPHELP_CATEGORY_OTHER_DEFINITION", "Map value for credit card instructions");         
    }  Here is the adf-setting.xml in Application sources / META-INF:
    <?xml version="1.0" encoding="windows-1252" ?>
    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings" > 
      <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
      <help-provider prefix="MAPHELP_">
        <help-provider-class>   
            com.corpnet.abc.util.ELHelpProviderProjRequest
        </help-provider-class>
        <property>
          <property-name>helpSource</property-name>
          <value>#{helpTranslationMap.helpMap}</value>
        </property>
      </help-provider>
    </adf-faces-config> 
    </adf-settings>Here is the faces-config:
    <managed-bean>
        <managed-bean-name>helpTranslationMap</managed-bean-name>
        <managed-bean-class> com.corpnet.abc.util.ELHelpProviderProjRequest </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>Here is the helpTopicId in the inputText component:
    <af:inputText value="Test" inlineStyle="font-weight: bold;" id="it31" simple="true" helpTopicId="MAPHELP_CATEGORY_CAPITAL" readOnly="true"/>

    Register the managed-bean as a help provider in the adf-settings xml like:
    Example 19-9 Registering a Managed Bean as a Help Provider
    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
    <help-provider prefix="MAPHELP_">
    <help-provider-class>
    oracle.adf.view.rich.help.ELHelpProvider
    </help-provider-class>
    <property>
    <property-name>helpSource</property-name>
    <value>#{helpTranslationMap.helpMap}</value>
    </property>
    </help-provider>
    </adf-faces-config>
    </adf-settings>
    As you've pointed out, Review section 19.5.3 for more details -> http://docs.oracle.com/cd/E24382_01/web.1112/e16181/af_message.htm#CHDHIGIA
    You could also investigate use the OHW product available here: http://www.oracle.com/technetwork/developer-tools/help/index-083946.html

  • Managed Beans vs. POJO Data Control for sharing data

    Hi,
    I am currently using JAX-WS proxy client and POJO Data Controls to retrieve data from web services. This data needs to be shared across users. Normally I would use application scoped managed beans for this, but since I prefer using data controls and the binding layer, would using static POJO Data Control classes achieve the same thing?

    Hi,
    Data Controls don't exist across user sessions so in your use case use a managed bean in application scope. If you want to make this available from a Data Control
    - create a POJO
    - Use EL in the POJO to access the managed bean
    - Create a DataControl from the POJO
    This way the Data Control exposes the data as an API but itself always reaches out to the managed bean as a data store/cache
    Frank

  • ADF Faces and BC: Scope problem with managed bean

    Hi,
    I am using JDev 10.1.3 and ADF Faces with ADF BC.
    I have created a managed bean which needs to interact with the binding layer and also receive actions from the web pages. I have a managed property on the bean which is defined as follows:
    <managed-bean>
        <managed-bean-name>navigator</managed-bean-name>
        <managed-bean-class>ecu.ethics.view.managed.Navigator</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
          <property-name>bindings</property-name>
          <value>#{bindings}</value>
        </managed-property>
      </managed-bean>I need the been to session scope because it needs to keep previous and next pages to navigate the user through their proposal. If i use session scope (as above) i get the following error when i click on a comand link which references a method in the above bean: #{navigator.forwardNext_action} which returns a global forward.
    this is the exception:
    javax.faces.FacesException: #{navigator.forwardNext_action}:
    javax.faces.el.EvaluationException: javax.faces.FacesException:
    javax.faces.FacesException: The scope of the referenced object: '#{bindings}' is shorter than the referring object     at
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)     at
    oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211) at
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)at
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)     at
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)     at
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)     
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)     at
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)how can i get around this?
    Brenden

    Hi pp,
    you need to create a managed (not backing) been set to session scope.
    You can call/reference the managed bean from your page.
    the backing bean is designed around a page lifecyle which is request oriented in it's design.
    This is a simple managed bean from faces-config.xml
    <managed-bean>
        <managed-bean-name>UserInfo</managed-bean-name>
        <managed-bean-class>ecu.ethics.admin.view.managed.UserInfo</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
          <managed-property>
          <property-name>bindings</property-name>
          <property-class>oracle.adf.model.BindingContext</property-class>
          <value>#{data}</value>
        </managed-property>
      </managed-bean>and the getters and setters for bindings in your session scope managed bean:
        public void setBindings(BindingContext bindings) {
            this._bindings = bindings;
        public BindingContext getBindings() {
            return _bindings;
        }you can access the model from the managed bean using the the BindingContext if needed.
    also have a look at JSFUtils from the ADF BC SRDemo application, there are methods in this class such as resolveExpression which demonstrate how to get the values of items on your page programatically using expression language. You can use this in your managed bean to get values from your pages.
    regards,
    Brenden

  • How to change MANAGED-BEAN-SCOPE??????

    Hi Gurus,
    How to change the managed-bean-scope? In my ADF application I have created one backing bean which has attched with the page fragment. I cant able to set the bean scope other than REQUEST....
    If I set the bean scope request, then page and the inside fragment is rendering without any error. But I need to make that bean scope to pageFlow... but if I do, getting the below error. Non of the scopes are working except request... Please help me how to set the other scope which will solve my major development issue!!!!
    Error:
    Error trying to include:viewId:/advsearch-flow-definition/advUserSearch uri:/app/advUserSearch.jsffjavax.faces.FacesException: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'UserSearch' resolved to null
    My ADFC-Config.xml:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
    <managed-bean>
    <managed-bean-name>backing_app_idm</managed-bean-name>
    <managed-bean-class>edu.syr.oim.backing.app.Idm</managed-bean-class>
    <managed-bean-scope>backingBean</managed-bean-scope>
    <!--oracle-jdev-comment:managed-bean-jsp-link:1app/idm.jspx-->
    </managed-bean>
    <managed-bean>
    <managed-bean-name>backing_app_userMgmt</managed-bean-name>
    <managed-bean-class>edu.syr.oim.backing.app.UserMgmt</managed-bean-class>
    <managed-bean-scope>backingBean</managed-bean-scope>
    <!--oracle-jdev-comment:managed-bean-jsp-link:1app/userMgmt.jspx-->
    </managed-bean>
    *<managed-bean>*
    *<managed-bean-name>UserSearch</managed-bean-name>*
    *<managed-bean-class>edu.syr.oim.backing.app.UserSearch</managed-bean-class>*
    *<managed-bean-scope>request</managed-bean-scope>*
    *</managed-bean>*
    </adfc-config>
    -kln
    Edited by: klogube on Jan 14, 2010 7:23 AM

    *public class UserSearch {*
    private RichTable searchResultTable;
    private Row currentRow;
    private String selectedNetID;
    private RichInputText inputOne;
    private RichInputText inputTwo;
    private RichInputText inputThree;
    private RichSelectOneChoice choiceOne;
    private RichSelectOneChoice choiceTwo;
    private RichSelectOneChoice choiceThree;
    private RichRegion region;
    private String choiceOneVal;
    private String choiceTwoVal;
    private String choiceThreeVal;
    DCBindingContainer bindings;
    int choiceOneRowIndex;
    int choiceTwoRowIndex;
    int choiceThreeRowIndex;
    Row choiceOnerw;
    Row choiceTworw;
    Row choiceThreerw;
    String choiceOneUserSelected = null;
    String choiceTwoUserSelected = null;
    String choiceThreeUserSelected = null;
    static String  txnTypeOne  = null;
    static String  txnTypeTwo  = null;
    static String  txnTypeThree  = null;
    String netid;
    RequestContext requestContext = RequestContext.getCurrentInstance();
    HashMap rcBackupHM = new HashMap();
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Application app = facesContext.getApplication();
    ExpressionFactory elFactory = app.getExpressionFactory();
    ELContext elContext = facesContext.getELContext();
    FacesContext fc = FacesContext.getCurrentInstance();
    HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
    HttpSession session = request.getSession();
    *public UserSearch() {*
    *public String userSelected() {*
    FacesCtrlHierNodeBinding binding = (FacesCtrlHierNodeBinding) searchResultTable.getSelectedRowData();
    currentRow = binding.getRow();
    selectedNetID = (String) currentRow.getAttribute("netid");
    requestContext.getPageFlowScope().put("netid",selectedNetID);
    return "goToDetails";
    ** Invoke this method when user double click the row in searchResult*
    *public void doDbClick(ClientEvent clientEvent) {*
    FacesCtrlHierNodeBinding binding = (FacesCtrlHierNodeBinding) searchResultTable.getSelectedRowData();
    currentRow = binding.getRow();
    selectedNetID = (String) currentRow.getAttribute("netid");
    requestContext.getPageFlowScope().put("netid",selectedNetID);
    *try{*
    FacesContext facesCtx = FacesContext.getCurrentInstance();
    NavigationHandler nh = facesCtx.getApplication().getNavigationHandler();
    nh.handleNavigation(facesCtx, "", "goDetails");
    *// Refresh the current region; advse1 is the id of the region component inside jspx page*
    AdfFacesContext.getCurrentInstance().addPartialTarget(region);
    *catch(Exception e){ }*
    *public void setSearchResultTable(RichTable searchResultTable) {*
    this.searchResultTable = searchResultTable;
    *public RichTable getSearchResultTable() {*
    return searchResultTable;
    *public void setInputOne(RichInputText inputOne) {*
    this.inputOne = inputOne;
    *public RichInputText getInputOne() {*
    return inputOne;
    *public void setInputTwo(RichInputText inputTwo) {*
    this.inputTwo = inputTwo;
    *public RichInputText getInputTwo() {*
    return inputTwo;
    *public void setInputThree(RichInputText inputThree) {*
    this.inputThree = inputThree;
    *public RichInputText getInputThree() {*
    return inputThree;
    *public void setChoiceOne(RichSelectOneChoice choiceOne) {*
    this.choiceOne = choiceOne;
    *public RichSelectOneChoice getChoiceOne() {*
    return choiceOne;
    *public void setChoiceTwo(RichSelectOneChoice choiceTwo) {*
    this.choiceTwo = choiceTwo;
    *public RichSelectOneChoice getChoiceTwo() {*
    return choiceTwo;
    *public void setChoiceThree(RichSelectOneChoice choiceThree) {*
    this.choiceThree = choiceThree;
    *public RichSelectOneChoice getChoiceThree() {*
    return choiceThree;
    *public void setChoiceOneVal(String choiceOneVal) {*
    this.choiceOneVal = choiceOneVal;
    *public String getChoiceOneVal() {*
    return choiceOneVal;
    *public void setChoiceTwoVal(String choiceTwoVal) {*
    this.choiceTwoVal = choiceTwoVal;
    *public String getChoiceTwoVal() {*
    return choiceTwoVal;
    *public void setChoiceThreeVal(String choiceThreeVal) {*
    this.choiceThreeVal = choiceThreeVal;
    *public String getChoiceThreeVal() {*
    return choiceThreeVal;
    *public void setRegion(RichRegion region) {*
    this.region = region;
    *public RichRegion getRegion() {*
    return region;
    Can you please explain how to define the 2nd bean in the pageFlowScope and injnect?...bacially my problem is I am loosing the pageFlowScope value when I navigate from first page to next page which I am setting by this above class....I need to carry forward the netid which I am losing ...any idea plz

  • Specify factory for managed bean

    Hello,
    I'm new to JSF and find myself duplicating a lot of code. For example, I have several pages that display data in the exact same way, even though the data collections vary (i.e. one page displays Country instances; the other State instances). Right now, I'm creating a managed bean for each type, but the beans only differ in how they populate the data (i.e. the bean for Country knows to load its data from resource X, whereas the bean for State uses a separate resource). Is there a way to specify a factory for initializing beans, or a way to pass arguments to the constructor, so that I could just use a single managed bean, with my JSF pages specifying how they want the bean initialized (i.e. for Countries, rather then States)? Am I misunderstanding some thing about managed beans? Under a servlet app, I would just populate the bean and then forward the client- I'm struggling with how to duplicate that need in JSF. Thanks for your help. Take care.

    Hello,
    I'm new to JSF and find myself duplicating a lot of code. For example, I have several pages that display data in the exact same way, even though the data collections vary (i.e. one page displays Country instances; the other State instances). Right now, I'm creating a managed bean for each type, but the beans only differ in how they populate the data (i.e. the bean for Country knows to load its data from resource X, whereas the bean for State uses a separate resource). Is there a way to specify a factory for initializing beans, or a way to pass arguments to the constructor, so that I could just use a single managed bean, with my JSF pages specifying how they want the bean initialized (i.e. for Countries, rather then States)? Am I misunderstanding some thing about managed beans? Under a servlet app, I would just populate the bean and then forward the client- I'm struggling with how to duplicate that need in JSF. Thanks for your help. Take care.

  • Bean datacontrols and managed beans

    Hi,
    When I use bean data controls, my bean from which the datacontrol is created is in session scope. In this case, should I be using another managed bean for the UI purpose or shall I use the "data control bean" ?
    For eg:
    I have a an EmployeeManager which returns a list of employees. Now I created a data control from my EmployeeManager. And I create a table of employees on my jspx. Suppose I want to keep the last selected employee record for some back end processing ( maybe a web service call to get the Employee Salary details) , shall I keep the selected Employee in my EmployeeManager or should I have a managed bean?
    If I keep this in managed bean, again I need it in my EmployeeManager for back end call. Please guide me.
    Thanks,
    Manoj

    Model layer binds presentation layer to business logic and data services and vise versa. In ADF applications the model layer is implemented as ADF DataControls + ADF Bindings. The presentation layer is implemented usually as UI. The business logic and data services may be implemented in various ways (ADF BC, EJB, POJO, Java Beans, Web Services, etc.). See this ADF architecture diagram.
    You should separate these layers from each other. In this way you will be able to replace the implementation of some layer without re-engineering the other ones (for example, to replace the bean-based data services with ADF based ones without re-engineering the user interface).
    Keeping track of the current records is responsibility of the model layer and the business/data services. The JSF managed beans are not a proper place to do it because they are part of the presentation layer. (In theory if you have good application architecture and you replace the implementation of the data service, then you should not be forced to modify the presentation layer too).
    ADF iterator bindings (defined in PageDefs) have a built-in funtionality for keeping track of current rows. In my opinion, they have this functionality regardless of the kind of the data services they are based on, so if you use ADF bindings you should have this functionality out-of-the-box even in case of a bean-based DataControl.

Maybe you are looking for

  • Structuring Help for Many Apps and Agile Development

    Hi Guys I am starting to evaluate RH9 (with server) and am lookign for seom advice on structuring help. We produce a management information system, which comprises 17 apps. We have major release versions: e.g. 4.9, 5.0 and then sub builds (e,g. 4.9.0

  • Upgrading from iOS 3.1.3 to 5.1 takes too long on my iPod 3G??

    I haven't updated my iPod touch 3G in a long time. And now that there's this new game out, i want to play it, but it said that it requires iOS 4.0 or higher.. So i'm trying to update my iPod to iOS 5.1, but it takes toooo long?? When i click update o

  • Dynamically Loading a Class with Parameters

    Hi, I'm working on small program during my spare time and I have run into a problem. I have one abstract class (Foo) which is extended by several other subclasses (subFoo1, subFoo2). I am trying to avoid making a whole host of if statements depending

  • Hello, I try to install my older creative suite software on a new computer.

    This question is Assumed Answered.  noa gur Community Membernoa gur Oct 24, 2014 6:48 AM On my old computer the same OS operation system (10.9.4) was installed.  it was working fine! now during the installation it rejects my serial number as "not val

  • PDF reading on iPhone

    How can I open a PDF document on my iPhone?  I use to be able to open them, but now they download(visual indicator) but do not display. I've downloaded the Adobe reader, but the document still does not display.