UIX, Struts, ADF and JSP

Hi guys. My manager asked me to spell out these different strategies and I fell quite short of an adequate summary. I was wondering if someone could breifly define the following technologies and perhaps explain why you would use them. Additionally, we are embarking on a new project and are unsure of which technology to base it on (we will create a BC4J layer). It is a web application which may end up serving many anonymous users.
UIX
STRUTS
ADF
JSP (as used in JDev9.0.3.3 - Create a complete JSP application).
Thank you in advance for your time and consideration!
~Rob Lundeen

Here is a quick one:
Oracle ADF - A framework for building J2EE applications. Based on the Model-View-Controller architecture. Offers flexability in choosing implementation for the different layers.
STRUTS - a popular open source controller for managing the flow of Web applications when using the MVC architecture. Used as the controller for Oracle ADF based applications.
JSP - One way to build your Web user interfaces or View layer in Oracle ADF.
UIX - Another way to build the View layer for your application. Provides a set of rich HTML component and built-in functionality. Uses a declarative approach to building the page. Will evolve to become a JSF implementation.
BC4J - Now renamed to Oracle ADF Business Components - one of the way to implement the data source (or Business services) layer in Oracle ADF applications. Other ways include EJBs, Web Services, TopLink, or simple Javabeans.
I hope this helps,
Shay,
Oracle.

Similar Messages

  • How to create an InputSelect using ADF and JSP

    I looking for some docs/instructions on creating "an InputSelect using ADF with JSP".
    Thanks,
    BG...

    Ok here are the Steps
    1) Open the JSP editor for the page in Question.
    2) In the Data Control palette select the item that you want to become the poplist and change the "Drop As" poplist to "Single Select List"
    3) Drag the field into the page. You'll get an empty poplist which implements the <html:select> and <html:optionsCollection> tags.
    4) With the JSP editor still open click on the "UI Model" sub-tab in the Structure pane
    5) Select the field you've just dragged in - then right click to get the context menu and choose "edit"
    6) Change the List Binding Mode poplist to "LOV Mode"
    You're then taken into a couple of screens where you can select the Source VO for the poplist, and the destination dataset, along with the thing you want for the Label and the Value.

  • Passing a url parameter to a method using ADF and JSP

    Hi
    (JDEV10.1.3 : ADF BC, JSP, STRUTS)
    I have a text input on my JSP Page which I need to pass the content as an argument for the dataaction which is implemented in my application Module as a method to set the where clause of a query. I do not know How to set the Method's NDValue. I have tried:
    NDValue='${pageContext.request.parameterMap[ComplexID]}'
    But it always returns null
    hint: ComplexID is my txtBox name on the JSP page.
    I need to pass request.getParameter("ComplexID") but as an NDValue it is not accepted.
    note that ComplexID is not a databind object, It has been created by myself as an HTML element.

    What result do you get when you enter the following into your browser:
    http://mylocalhost_IP/path/to/component/questions.cfc?method=getQuestionsXML&quizid=2 ?
    (Replace http://mylocalhost_IP/path/to/component/ with the correct path to your component)
    Are the results valid/well-formed XML?  Is there any extraneous text that might interferre with the XML processing?  I noticed your xPath was looking for an element called "question s" - Is that the correct name of the element in your XML?  Is there really a space in the name?
    See if you can troubleshoot the issue using your browser first before adding it back into the Spry call.
    Hope that helps!
    - Michael

  • HELP! - JSP/Struts/ADF and JBO-29000 exception

    What is the meaning of following exception:
    Validation Error
    You must correct the following error(s) before proceeding:
    JBO-29000: Unexpected exception caught:
    java.lang.NullPointerException, msg=null
    null
    I get this exception when the browser session is open for long period of time (I tried to time it but could not see consistent outcome. But usually it happens after about 1 hour).
    And also the exception is thrown only for the JSP that was used (before timeout happened). I can still access other JSPs in the application that were not used earlier.
    These random exceptions are making the whole application unusable. The user has to close the browser session and start over again.
    Thaks in advance for the help.

    Following are the settings for my application:
    The session time out is 35 minutes (<session-timeout>35</session-timeout> in web.xml)
    jbo.ampool.maxinactiveage is 600000 milliseconds (or 'Idle Instance Timeout' is 600 secs. or 10 mins.)
    My application times out after 35 mins. and the user has to re-login (I handle this in my application by checking some session parameters that I set on login). The application works fine again except that sometimes I get the exception that I mentioned in this thread.

  • How can I customize the error message UIX STRUTS ADF

    Hi dear forum:
    I need to customize the error message?
    Error
    Id - JBO-27014: Attribute Id in AppModule.BackupsView1 is required
    Fecha - JBO-27014: Attribute Fecha in AppModule.BackupsView1 is required
    AplId - JBO-27014: Attribute AplId in AppModule.BackupsView1 is required

    Repost:
    I need to customize the error message when I insert a new row with wrong values in ADF STRUTS UIX, where can I changue the default values for the message?

  • Rollback after postchanges() in struts / adf bc / jsp project

    I have a wizard that collects info from the user and binds the data as I move through the wizard. On the final screen I have a dataaction that first posts the data to the database and then calls a procedure on the database(the purpose of posting the data is so that the procedure has visibility of the data collected through the screens). So far so good...
    I then call a payment gateway to validate credit card information. If the gateway returns an error code I rollback the database post/ procedure changes(so I don't end up with a double post!) I then allow the user to change their card information and then go back to the final screen again. The problem I have is because of the rollback the data from the screens is no longer bound. To try and solve this I tried a specific rollback on the database by calling a database procedure that does a rollback.
    I was hoping that this would just rollback the post changes / procedure changes without affecting the middle tier?. It doesn't. I now get an error stating that the entity with row key xxx has been deleted. I don't understand how a rollback performed in a procedure on a database can also remove entries from the entities in the middle tier.
    Has anyone got a solution to my problem ???????

    Does the above not make sense, or does no one have a suggestion?
    Any help would be appreciated.
    Many Thanks.

  • Login Box example and source code on adf struts and JSP

    Dear all..
    I want to make application using ADF struts and JSP using oracle 10g Jdeveloper.
    The user should login into the login box and verify everyone who has right to enter the home.jsp.
    Anybody could help me with the source code as well as the step by step explanation...
    I'm looking forward the help...

    http://www.oracle.com/technology/products/jdev/collateral/papers/10g/reviewer/viewlets/reviewer_struts_viewlet_swf.html

  • ADF UIX Struts and the BajaContext, Page, and PageEvent

    Hi,
    I'm hoping someone can point me to the right piece of documentation, but I can't seem to figure out how to build the link between 1) the new ADF bindings and the UIX controller event handler objects such as the BajaContext and 2) a UIX event handler and the ADF bindings.
    We used the ServletBindingUtils object to gain a handle on BC4J objects within UIX event handlers. To get the application module, we'd use getApplicationModule and pass in the BajaContext object. Or, the BindingContext, but this context is the oracle.cabo.data.jbo.bind.BindingContext, not oracle.adf.model.BindingContext.
    Also, the opposite question remains on how does one obtain a handle the Page, PageEvent, and BajaContext from the struts side, from say the DataActionContext?
    If there is no link (or not one easily obtained) are there plans to provide one, or are these two controller mechanisms to remain separate?
    Thanks much,

    I don't know if this will help:
    http://helponline.oracle.com/jdeveloper/help/state/content/navSetId.jdeveloper/navId.4/vtAnchor.handlingEvents/vtTopicFile.jdeveloper%7Cuixhelp%7Cuixdevguide%7Cintroducingbaja%7Ehtml/
    There is a snippet to finding the BajaContext off of the rendering context:
    BajaContext bajaContext = BajaRenderingContext.getBajaContext(context);
    I'm not sure if something similar can be done with the ActionContext or not.
    Brad

  • ADF UIX/Struts Portlets?

    Hi all,
    I'm trying to deploy an ADF BC / ADF databindings / Struts / ADF UIX application as a portlet. I've found an article on deploying Struts/JSP apps as portlets ( http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/ARTICLES/pdkstruts/portletize-your-app.html ) and a thread on some changes you need to make to use ADF databindings ( ADF and portlets - help please ), but it looks like I'd need to do something different for UIX.
    For one thing, the first article suggests using the The PDK Struts Tag Library, which I assume is a JSP tag library and so not compatible with UIX.
    Does anyone have any suggestions or resources for making portlet-compatible UIX pages?
    Thanks much,
    Avrom

    Avrom,
    I figured out how to deploy ADF/JSP to the portal but there are a few issues. The biggest one is that Oracle Support does not support ADF with the JPDK. I found out the hard way:(
    UIX is most likely out of the question.
    Good luck,
    Hernando
    [email protected]

  • Struts Actions and events in one jsp?!

    Hello,
    I have a problem with Struts actions and events in a jsp.
    It is a search page and when the user clicks the search button I trigger an event and when the user clicks on a link in the result table (same page) I use an action that opens a new detail jsp. The first search query works well, I get a result, open the detail page, go back (using an action).
    Then I start a new search, but struts tries to open the detail page. While debugging I found out, that struts apparantly has no action or event. Why does it work at first time?
    Any ideas?
    Thanks in advance
    Britta

    Thanks for answer,
    I work with actions AND events. I think that`s the problem. When I go back from detail page to search page I use a custom DataForwardAction class with the following method:
    public void onCancel(DataActionContext ctx)
    DCBindingContainer bc = ctx.getBindingContainer();
    HttpServletRequest request = ctx.getHttpServletRequest();
    WebUtils.setSession(request);
    String ziel = request.getParameter("ziel");
    JUCtrlActionBinding action = (JUCtrlActionBinding) bc.findCtrlBinding("Rollback");
    action.doIt();
    try
    ctx.setActionForward(ziel);
    catch (Exception e)
    ctx.setActionForward("liste_freig");
    Ziel has the correct value ("search") and I think the struts config is also correct:
    <action path="/material" type="view.actions.materialAction" className="oracle.adf.controller.struts.actions.DataActionMapping" parameter="/material.jsp" name="DataForm">
    <set-property property="modelReference" value="generalUIModel"/>
    <forward name="liste_freig" path="/liste_freig.do"/>
    <forward name="liste_angelegt" path="/liste_angelegt.do"/>
    <forward name="list_bewertet" path="/list_bewertet.do"/>
    <forward name="liste_abgelehnt" path="/liste_abgelehnt.do"/>
    <forward name="liste_onhold" path="/liste_onhold.do"/>
    <forward name="search" path="/search.do?action=search"/>
    </action>
    But when I get back from material page to search page (the first time it works). The location pathname is material.do not search.do When start a new search the material page opens, not, as desired, the search page with new results.
    Search Action:
    public class searchAction extends DataForwardAction
    public searchAction()
    protected void prepareModel(DataActionContext ctx) throws Exception
    HttpServletRequest request = ctx.getHttpServletRequest();
    DataActionMapping acmap = ctx.getActionMapping();
    DCBindingContainer bc = ctx.getBindingContainer();
    WebUtils.setSession(request);
    JUCtrlActionBinding action = (JUCtrlActionBinding) bc.findCtrlBinding("delSearchQuery");
    action.doIt();
    String sEvent=null;
    try
    sEvent=request.getParameter("event");
    catch (Exception e)
    sEvent=null;
    if (sEvent==null)
    if (request.getParameter("action") != null)
    if (request.getParameter("action").equals("material"))
    Number mat_no=new Number(request.getParameter("MaterialNumber"));
    Number userId=new Number(WebUtils.getUserId(request));
    bc = ctx.getBindingContainer();
    action = (JUCtrlActionBinding) bc.findCtrlBinding("prepareMaterial");
    ArrayList arrayList= new ArrayList();
    arrayList.add(0,mat_no);
    arrayList.add(1,userId);
    action.setParams(arrayList);
    action.doIt();
    ctx.setActionForward("material");
    if (request.getParameter("action").equals("material_datasheet"))
    ctx.setActionForward("material_datasheet");
    super.prepareModel(ctx);
    public void onSearch(DataActionContext ctx)
    DCBindingContainer bc = ctx.getBindingContainer();
    HttpServletRequest request = ctx.getHttpServletRequest();
    WebUtils.setSession(request);
    ctx.setActionForward("search");
    Struts config:
    <action path="/search" className="oracle.adf.controller.struts.actions.DataActionMapping" type="view.actions.searchAction" name="DataForm" parameter="/search.jsp">
    <set-property property="modelReference" value="searchUIModel"/>
    <forward name="search" path="/search.do?action=search"/>
    <forward name="material" path="/material.do?action=material"/>
    <forward name="material_datasheet" path="/material_datasheet.do?action=material_datasheet"/>
    </action>
    I think it`s a Struts bug. Or is there something I don`t see?

  • Anyone deploy ADF(UIX,Struts,BC4J) to 9iAS 9.02?

    Has anyone been successful in deploying a ADF 10g app using UIX/Struts/BC4J to Oracle 9iAS 9.02?

    Deploying a UIX application directly from JDeveloper 10g to iAS 9.0.2 isn't supported out of the box. You can deploy directly to iAS 10g (9.0.4), standalone OC4J 10g (9.0.4) instances (one is included with JDeveloper 10g), iAS 9.0.3 Java edition, standalone OC4J 9.0.3, and selected third party servlet engines.
    There are two issues that you would need to workaround to deploy a 10g ADF application to iAS 9.0.2. One issue is that 9.0.2 versions of some of the ADF libraries (BC4J and UIX for example) are on the global application.xml classpath of the iAS 9.0.2 customer home OC4J instance. You would need to manually upgrade your 9.0.2 instance to have all of the ADF 10g libraries. The second issue is that some of the ADF 10g libraries (like BC4J) require JDK 1.4, and iAS 9.0.2 shipped with an earlier version of the JDK. I personally don't know if using iAS 9.0.2 with JDK 1.4 is a supported combination, but I will try to find out for you.
    By the way, you might wonder why we don't have these same problems with with iAS 9.0.3 and 9.0.4 since the ADF 10g libraries are more recent than what shipped with those releases. In OC4J 9.0.3 and 9.0.4 there is a "search-local-classes-first" option in orion-web.xml that allows classes provided as part of a web application to be loaded in preference to what is on the global application.xml classpath. We use this feature to deploy ADF 10g applications (and include the JARs for some of the ADF libraries in the WEB-INF/lib of the application). In addition, there is a tool called the ADF Installer that is part of JDeveloper that will upgrade versions of some of the backward compatible ADF libraries (like BC4J) in the global application.xml.

  • Database constraints and Struts ADF

    I have a struts ADF project and wish to pick up unique constraint violations from the database(only the database)
    How and where to i trap these violations

    The toy store demo has two java classes called
    toystoreDBtransactionfactory & toystoreDBtransactionimpl.
    These are used to overide the default functionality of
    DBtransaction and DBtransactionimpl. The configuration
    manager (right click your bc4j application module) allows you to set the database transactionfactory class to the overriden classes. The toystore routines basically capture the databse constraints and reformat the messag einto something more meaningful.
    When i run the bc4j tester the changed routines function correctly for example when doing an insert.
    With a struts jsp program a similar insert doesn't trigger the changed routines so i just get the database error comiing back to the screen.

  • Use UIX and JSP together

    I have some existing jsp application . I want to integrate it with UIX application that is generated from JHeadStart . jsp application is just 10% of whole project.
    I am not sure this is a good way or not . May be We should use JHeadstart to generate JSP more than UIX . but I think it 's more powerful if I use JHeadstart to generate UIX application .
    What do you recommend for this ?
    and if we have to use both together . How dose JSP application pass parameter to UIX application ? and How dose UIX pass parameter to JSP ?. and How UIX use the parameter that 's sent form JSP ?
    thanks in advance

    If JSP is only 10% you might want tpo consider migrating these pages to UIX.
    If this is not an option, you should be able to use both UIX and JSP pages. However, make sure you create separate struts-config.xml files for the JSP-based subsystem and the UIX-based subsystem. This requires two se[parate ViewController projects, that act as one web application. The same setup that has been aplied to Th JHeadstart demo application in Jhs 10.1.2.1. Check out this article from Duncan Mills as well:
    http://www.oracle.com/technology/products/jdev/howtos/10g/StrutsMultiConfigs/struts_multiconfig_howto.html
    One addition to this articel: the source path property of the ViewController projects shopuld be the same as well.
    As far as communication between the pages is concerned: this is no different then between UIX pages. You can pass request parameters around, and since the pages are running in the same web app, they share the same HttpSession.
    Steven Davelaar,
    JHeadstart Team.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • File Upload using struts and jsp

    Hi,
    Anybody have sample coding for uploading files into the database using struts and jsp.
    Thanking you in advance for providing the sample coding.
    Veena

    Hi Veena,
    In Strutsconfig.xml you have to configure data sources like this
    **************strutsconfig.xml******
    <data-sources>
    <data-source
    type="org.apache.common.dbcp.BasicDataSource">
    <set-property property="driverClassName"
    vlaue="oracle.jdbc.driver.OracleDriver"/>
    <set-property property="url" vlaue="jdbcracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID =ORCL)))"/>
    <!-- <set-property property="url"
    vlaue="jdbcracle:thin:@127.0.0.1:1521:ORCL"/>-->
    <set-property property="username"
    vlaue="scott"/>
    <set-property property="password"
    vlaue="tiger"/>
    </data-source>
    </data-sources>
    Now here is how to get data source
    public class LookupAction extends Action
    public Double getQuote(String symbol,
    HttpServletRequest request)
    throws Exception
    Double price=null;
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    DataSource dataSource=null;
    try
    dataSource = getDataSource(request);
    conn= dataSource.getConnection();
    stmt= conn.createStatement();
    rs= stmt.executeQuery("select * from stocks where" + "symbol='" + symbol +"'");
    if (rs.next())
    =======================
    After you can use the coding what I posted earlier.
    For that you need to create a table with attachment as a CLOB col.
    then with prepared statement I am setting value .
    Plz try your self every thing ok you can get that.
    all the best
    bye
    sudheen

  • ADF/UIX where clause and VO on different pages

    Hi,
    i have a VO called Periods which contains Periods and their statuses. On one page for entering data i use the periods VO in LOV mode with a where clause limiting the user to selecting periods with open status.
    I have another page which is for maintaining the period statuses. The problem is that when i move between entry and setup pages the where clause takes affect in both pages ie. the maintain periods page only shows periods with status Open!!
    To get around this on the maintain periods prepare model i tried doing this:
    actionContext.getBindingContainer().getApplicationModule().findViewObject("PeriodsView1").setWhereClause(null);
    actionContext.getBindingContainer().getApplicationModule().findViewObject("PeriodsView1").executeQuery();this works, however it causes bizarre behaviour on some records when i change values in the UIX editable table. The UIX editable table works fine if i remove the above code snippet (and dont go to the page that sets the where clause on the view object). The behaviour is that i cant select some rows in the UIX table properly and the updated values arent effected.
    can someone advise pn the proper way of doing this?

    Brenden, instead of setting the where clause to null, try setting it to an empty string (eg. "") or something dumb like "1=1".
    In turn place JDeveloper into debug mode by selecting your project properties, profiles, development, runner, and changing the java options to: -Djbo.debugoutput=console
    With this option turned on, you'll see your actual SQL going to the database with your where clause. You should be able to see the where clause of your underlying query that you just set, and if you use something dumb like 1=1 you'll note the setWhereClause module is working.
    Hope this helps.
    Cheers,
    CM.

Maybe you are looking for