ADF BC/Struts/JSP

I'm hoping some of you out there can just confirm some of my observations and maybe answer a few high level questions.
I have been playing around with Jdev 9052 for a few days, I've read Steve Muench's Data Binding primer and have even created a few demo apps.
The one i'm currently playing with has two data pages, a browse form and an edit form. The browse form simply displays a few rows from a view object, has an edit and a delete link for each row, and has a create link outside the main table for creating a new row.
To make the create link work, i have a binding on the BrowseForm data page(called "Create") bound to the Create action on my literator. I also have a forward on my BrowseForm data page called "Create" that forwards to my EditForm data page. The edit page then displays the new blank row, I fill in the data and press the submit button.
The data action automatically copies the data into the new blank row in the view object. The submit button's name is "event_save" and i have an onSave method defined in the pages DataAction that commits the transaction.
My questions are:
A) Is this the correct way to be doing this?
B) Assuming this is the correct way, is the BC framework holding a database transaction open between the time the Create action is executed on the iterator(in response to clicking the "New" link) and the commit operation is executed(in response to the submit button on the edit page)???
C) If it is holding open a transaction during the data entry, isn't that a bad thing in a web application?
D) If it is holding open a transaction, what does the BC framework do when the app module pool gets full and it needs to start recycling modules?
I have one more question not related to my example. In every web application I have written for use by the general public, and in every app I have used that was written for the public, there has never been any concept of having to Commit changes separate from submitting the data to the server. As a user when i press the submit button I expect the data to be saved, i don't expect to also have to click on a Commit button like I do in Oracle Forms. My question is, does Oracle have any plans to add any features to ADF BC to make this kind of development any easier and more declarative?

Sorry I haven't been able to reply, got dragged into an emergency project.
I have it all working very well, and I really should have figured the commit thing out myself, I was just thinking about it way too hard.
I do have one more quick question about something I was able to do, I want to have a link next to each row that will delete that row. In order to do that I need to:
1) Set the current row
2) Delete the row
3) Commit
I was able to do this declarative without having to create any extra data actions by passing three event params on a link such as the following
<a href="engineManagement.do?event=selectRow&rowKeyStr=<c:out value='${Row.rowKeyStr}' />&event=Delete&event=Commit" >Delete</a>
(selectRow is bound to the setCurrentRowWithKey method)
Should I be using the event system in this way?
This seems to work very well, but i'm concerned about the ordering of the events, if they get executed in the wrong order, the wrong row will be deleted or the transaction won't get committed. Will the ADF controller always execute events in the order they appear on the query string?

Similar Messages

  • Adf-Struts/JSP/BC4J- and setting date fields from jsp

    Hi,
    I'm working with the new ADF Frameworks (JDev 9.0.5.1) and ran into some questions regarding exception handling using BC4J, Struts and JSPs.
    I have a DATE column in database and an entity and VO with a datefield with type oracle.jbo.domain.Date.
    My JSP shows a textfield and the user should enter a valid date. Everything fine, until date is of wrong format or contains illegal characters...
    Problem:
    ADF tries to do a setAttribute on the datefield in VO row which expects a parameter with type oracle.jbo.domain.Date. When the user entered e.g. "NiceWeather" as date, I get an IIlegalArgumentException while converting to the correct Date format. This exception isn't thrown by bc4j as AttrValException and therefore my JSP renders a global error instead of a message directly behind the date field.
    I tried to validate the datefield in my DataForm and in my Action in the validateModelUpdates() method, but with no fitting solution.
    Any ideas how to validate a datefield with adf/struts/jsp/bc4j?
    Thanks for your help!
    Torsten.

    Torsen - In the first instance I'd recommed that you try and handle it declaritively using the Struts Validator Framework . See http://otn.oracle.com/products/jdev/howtos/10g/StrutsValidator/struts_validator_howto.html
    There is a section in there on how to use the validator with ADF databound pages and you can check the format the user enters via generated JavaScript.
    Also check out the matching sample project:
    http://otn.oracle.com/sample_code/products/jdev/10g/ADFandStrutsValidator.zip - this has a data field check on it as well

  • COMMIT problem in TopLink, Struts, JSP and ADF Databinding sample

    In the sample Developing a J2EE Application using TopLink, Struts, JSP and ADF Databinding,
    I followed all the steps to build a department browse page and a edit page.
    But when I get to Step number 23 in "Create a JSP to Edit Departments" I have a problem with the commit.
    Only after I make a change in the form and click the sumbit button, the commit and rollback buttons become active. And After I click the commit button the data gets commited to the database but the page inofmation changes to the very first department record, not the current one.
    How do I make those buttons active with out the extra click on the submit?
    After I click the commit button, how do I keep the current data on the screen?
    Thanks for you help.

    Shay,
    Thanks for the reply.
    For #1, I was able to do the following and get away with not having to press submit first. I just removed the bindings for disable. I hope that does not cause any problems?
    <input type="submit" name="event_Commit" value="Commit" />
    <input type="submit" name="event_Rollback" value="Rollback" />
    For #2, How I add an action on an HTML button? My UIModel.xml for the edit department page currently has two actions on it. Commit and RollBack. Is it linked through the "name" attribute of the input tag?

  • [freelance job] Experienced ADF/Struts/JSP View-Controller developer

    Hi,
    I'm looking for a freelance "10.1.2 JDeveloper":
    - First task: Development of multi-lingual Struts View and Controller for login, logout, contact, free registration(create/modification of account info, new password, ...) pages.
    Period: may, june 2005 and more if first collaboration is succesful.
    Skills on following technologies are required:
    - View: Struts tags , Struts-el tags , JSTL , JSP , Servlets => no javascript, no UIX, no faces
    - Controller: ADF/Struts
    - Model: Oracle ADF-BC 10.1.2 Oracle 10g Database
    We provide the static html pages + css files and the ADF-BC model components.
    We develop/enhance the Model service methods based on your requirements.
    You "translate" the static html pages to Struts/Struts-EL/JSTL/JSP and the necessary ADF-Struts controllers that inter-act with our ADF-BC Model.
    Contact: [email protected]
    Regards
    Fred
    PS Sorry for polluting this technical forum with this kind of request.

    Dear all..
    I have change the block program, but still can't run..
    My EmpAction.java like these
    ==============================================
    package BindTest7.view;
    import BindTest7.model.EmpViewImpl;
    import java.text.DateFormat;
    import java.text.ParseException;
    import
    oracle.adf.controller.struts.actions.DataActionContext;
    import
    oracle.adf.controller.struts.actions.DataForwardAction;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.ViewObject;
    import java.util.Date;
    public class EmpAction extends DataForwardAction
    protected void prepareModel(DataActionContext ctx) throws Exception {
    super.prepareModel(ctx);
    ctx.getBindingContainer().findIteratorBinding("FindEmpView1Iterator")
    .setFindMode(true);
    public void onSearch(DataActionContext ctx) {
    ctx.getBindingContainer().findIteratorBinding("EmpView1Iterator")
    .executeQuery();
    //-public void onFilter(DataActionContext ctx)
    //recovery view
    ApplicationModule
    am=ctx.getBindingContainer().getDataControl().getApplicationModule();
    ViewObject EmpView=am.findViewObject("EmpView");
    //recovery dates
    String
    d1Str=ctx.getHttpServletRequest().getParameter("hiredate");
    String
    d2Str=ctx.getHttpServletRequest().getParameter("endDate");
    java.text.SimpleDateFormat formatter =
    new java.text.SimpleDateFormat("dd/MM/yyyy");
    Date d1=null;
    Date d2=null;
    // parse method could try a ParsingException,
    // it doesn't happpeend when dates are correct
    try
    d1=formatter.parse(d1Str);
    d2=formatter.parse(d2Str);
    catch (Exception e)
    //set where clausole
    EmpView.setWhereClauseParams(null);
    EmpView.setWhereClause("Hiredate>=:1 and Hiredate<=:2");
    EmpView.setWhereClauseParam(0,d1);
    EmpView.setWhereClauseParam(1,d2);
    EmpView.executeQuery();
    ===============================================
    Please help me....
    I just want to make a little modification on Steve Muench's Example
    by placing two input form for hiredate column so that
    the user only put the date
    on the query " between hiredate :1 and :2
    I'm waiting...
    regard
    erie

  • 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]

  • How to retrieve values from the struts DAO to Struts JSP

    Hi friends,
    I have one question. i want to display values in the struts jsp file from the struts DAO class. can anyone tell how do it.
    Appreciated for your help.
    Thanks
    G1 :)

    Hi Santosh,
    Thanks for your prompt reply.
    Actually, my problem is i want to display complete rows from the DAO to JSP page. I'm displaying all the rows in the DAO from DB.
    But i dont know how to retrieve all these data from DAO. Can i take arraylist.??
    DAO:
    ------------     public Customers getData(Customers customers){ // Reading data from DB
         //ArrayList list = null ;
         try
              Connection conn = getSQLConnection();
              Statement statement = conn.createStatement();
              String qry = "select * from register";
              ResultSet resultSet = null;
              PreparedStatement pstat = conn.prepareStatement(qry);
              // pstat.setString(1, customers.getFname());
              resultSet = pstat.executeQuery();
    //Print the data to the console
    while(resultSet.next()){
              String fnam = resultSet.getString(1);
              String lnam = resultSet.getString(2);
              String gen = resultSet.getString(3);
              String addres = resultSet.getString(4);
              String cit = resultSet.getString(5);
              String zip = resultSet.getString(6);
              String county = resultSet.getString(7);
              String emal = resultSet.getString(8);
              System.out.println("First name:"+fnam);
              System.out.println("Last name:"+lnam);
              System.out.println("Address:"+addres);
              customers.setFname(fnam);
              customers.setLname(lnam);
              customers.setGender(gen);
              customers.setAddress(addres);
              customers.setCity(cit);
              customers.setZipcode(zip);
              customers.setCountry(county);
              customers.setEmail(emal);
                   statement.close();
                   conn.close();
              }catch(Exception e1){
                   e1.printStackTrace();
              return customers;
    Bean:
    I have specified in this line in Bean:
    request.getSession().setAttribute("customers", customers);
    But in JSP. how will i populate all these data. Pls..send some code.
    I'm sorry this is just practicals. i'm not doin any real time project. that;s why i have placed all these code.
    Thanks for your patience for resolving my problems.
    Thanks
    G1

  • How to use VPD in Java/Struts JSP portlet with SSO

    DB = 10.1.0 (Standard Edition)
    Portal = 9.0.4.1
    10gAS = 9.4.0.1 (EE)
    I am in the beginning stages of developing some portlets that will be Java/Struts JSP based. We use SSO and have implemented some VPD security in our DB by creating some views that use SYS_CONTEXT('USERENV','CURRENT_USERID').
    These Java portlets connect to the DB using a defined JDBC connection for the OC4J container they are deployed in. The problem I'm having is that the call to SYS_CONTEXT is returning the user of the JDBC connection and not the SSO user. So far I have been unable to find any documentation that will point me in the right direction to get this configured properly.
    Deployment and configuration are as follows. Deploy war file to custom container on app server. In the configuration of the OC4J contain the app used the containers default JDBC connection using the oracle.jdbc.pool.OracleDataSource class. Max and Min open connections are blank.
    In the portal configuration under Navigator - Providers tab we defined a new Registered Provider. In the Connections tab for the provider we Specify the URL Http://hpsrv02.simsol.com:7777/discovery-portlets/providers. Under "Specify how the user's identity will be set by the Portal..." the "The user has the same identity in the Web providers application as in the Single Sign-On identity" is selected. Under "User/Session Information" User is selected and Login Frequency is set to "Once per user session". Then we created a new portal page and created a new portlet with the new provider.
    Just an FYI I do have Discoverer working with VPD and any report portlet, dynamic page portlet and any other type of portlet I created all work correctly with VPD it is just the java/struts one that is not working.
    So does any one have any insight into what configuration steps I have missed?
    Any help is much appreciated,
    Ed Klinger

    Ed,
    Your java code must get the SSO username (it's just a HTTP header variable) :
    ie: code sample...
    Enumeration e = request.getHeaderNames();
    while (e.hasMoreElements()) {
    String name = (String)e.nextElement();
    String value = request.getHeader(name);
    out.println("<br> "+name + " = " + value);
    if (name.toUpperCase().trim().equals("OSSO-USER-DN")){
    dn_user=value;
    out.println("<br>******** USER DN = "+dn_user);
    Then, the SSO username can be used in the VPD policy.
    Note that there is a difference between the sso username and the database username . SSO username is not known by database (CURRENT_USERID will return a database username)
    Discoverer worked OK in your case with the SYS_CONTEXT (.. CURRENT_USERID) because authentication is made by database user, probably.

  • Oepe-12.1.2.1-kepler how to use ADF Templates in JSP page

    Hi all,
        I use oepe 12.1.2.1 kepler 4.3 and creating JSP page but I can't see any ADF Rich Faces Page in JSP Templates Page of Preferences Dialog. How to use ADF Templates in JSP page?
    Thanks,
    Thomas

    Select the JSP Templates link. Is the ADF Rich Faces Page template listed? Refer Creating the Login Page/4.
    Introduction to the Oracle Enterprise Pack for Eclipse (OEPE) IDE

  • How to use javascript functions in struts jsp page

    hi
    iam using struts jsp pages. here iam calling one javascript function. but iam not able to access the form in javascript.
    wat i have to give as form name to get the elements of the form.
    please reply me soon
    it is urgent
    vamsi

    your form has no name liek this one:
    <html:form action="/userRegistration.do" >so you cannot access the elements inside your form?
    accessing the elements inside the form will be like this:
    document.forms[0].propertyName.value;

  • Urgent: Portletizing an struts JSP application

    Hello all,
    I have a struts JSP application. I want to portletize this whole
    application, so that navigation is always within the portal
    framework.
    Using URL Services all I can see is that the first page will be a
    portlet.
    Can anyone suggest the best way to portletize the application?
    This is quite urgent and your help will be greatly appreciated.
    Thanks in advance.
    Faisal.

    Hi all,
    Concerning the message below, does the struts framework affect how normal JSP applications are added to Portal? Or is it as simple as just importing the portal classes and referencing them in the JSP's?
    We would like to use struts for our next web application using JSPs, but need to display them within Portal. I've done this before by just changing the way our hrefs work, but am wondering if using struts will affect any of this.
    Thanks in advance,
    Gillian
    Hello all,
    I have a struts JSP application. I want to portletize this whole
    application, so that navigation is always within the portal
    framework.
    Using URL Services all I can see is that the first page will be a
    portlet.
    Can anyone suggest the best way to portletize the application?
    This is quite urgent and your help will be greatly appreciated.
    Thanks in advance.
    Faisal.

  • Alternative to HTML Frame in struts/jsp

    I am using Struts/JSP for my application..
    I have 3 panels(3 jsp's) each with a table of information.. each jsp has a summary part to it.. the data & information in the summary is the same across all panels.. Currently I've copy pasted the code for the summary in all 3 jsp's & Actions & ActionForms... I would like to change this to using a 4th panel sort of for the summary information... not sure what would be the best way to do this.. html frames or anything better maybe.. ?
    Thanks

    did u consider using struts tiles?
    http://struts.apache.org/userGuide/dev_tiles.html

  • Accessing ApplicationModule in Struts/JSP application using JDev 11g TP3

    Hello All,
    I am using Oracle JDeveloper 11g Technical Preview 3
    I got one "AppModule" created under my (Struts/jsp) project "MODEL" structure.
    Now, how can I access that ApplicationModule in my Action Class
    BC4JContext bc4jContext = BC4JContext.getContext(request) is not working, returns null everytime,
    Can anyone please let me know, how can I achieve this?
    Thanks
    user625610

    Hi don't know your name,
    if you get null from BC4JContext.getContext(request) you should check you configuration. Check your web.xml file where you should see something like...  <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>mapping</param-name>
          <param-value>oracle.jbo.html.struts11.BC4JActionMapping</param-value>
        </init-param>
        <init-param>
          <param-name>BC4JDefinition</param-name>
          <param-value>your_model_project_name</param-value>
        </init-param>
    ...The init parameter BC4JDefinition is used to set up the context in the BC4JRequestProcessor class. My guess is that you don't have this parameter in your web.xml (or are pointing to a wrong name). the value should be the name of the cpx file without the .cpx you have in your viewcontroller project.
    If you have migrated your project from JDev 10.1.2 you should check the 10.1.2 web.xml against the 11TP3 web.xml after the migration. The servlet part should be identical.
    Timo

  • Working with large number of search results in struts/jsp application

    I'm developing a struts/jsp web application that returns upwards of
    30000 results obtained from a very complex schema and multiple queries
    to the database.
    We want the user to be able to paginate through the results, sort by
    several fields, add/drop columns and download in several formats. We
    don't expect heavy traffic but we do want it to be scalable.
    Up to now, I have been storing the results in a session ArrayList
    which can eat up a lot of memory. The queries take long to perform so
    I do not want to repeat them with every request.
    I would like to store in a single mysql temp table but I have read
    that when the connection ends, the table is dropped. I understand that
    creating a database Connection as a session variable is not a good
    practice.
    This is not a unique problem - I was hoping someone else has some
    insight into the best way to proceed.
    Thanks

    glwinsor wrote:
    I'm developing a struts/jsp web application that returns upwards of
    30000 results obtained from a very complex schema and multiple queries
    to the database.Who will want to deal with 30,000 rows? Not me. When Google returns a result to me, I get it in chunks of 10 at a time.
    We want the user to be able to paginate through the results, sort by
    several fields, add/drop columns and download in several formats. We
    don't expect heavy traffic but we do want it to be scalable.That's a separate, complex issue.
    Up to now, I have been storing the results in a session ArrayList
    which can eat up a lot of memory. The queries take long to perform so
    I do not want to repeat them with every request.Maybe your schema has issues. Do you have appropriate indexes? Has your DBA checked EXPLAIN PLAN to be sure that the queries are optimal?
    I would like to store in a single mysql temp table but I have read
    that when the connection ends, the table is dropped. I understand that
    creating a database Connection as a session variable is not a good
    practice.Not scalable.
    This is not a unique problem - I was hoping someone else has some
    insight into the best way to proceed.The paging part has been dealt with by Hibernate and other frameworks. Something like the Flex grid UI component might help. Caching and such can help you out. It's not easy, as you already know, and there isn't a canned solution that is one size fits all.
    %

  • What do I download for Struts/JSP/Hibernate?

    My organization has purchased a five-user license for "Workshop" and I would like to use it for Struts/Hibernate/JSP development. However, it's not clear what I need to download and install.
    I tried downloading and installing both of these files:
    workshopstudio102_win32.exe
    workshop102_win32.exe
    In both cases, after the dust settled there was no application called "Workshop" on my Windows XP system.
    There is now something called "WorkSPACE Studio 1.1." ("Space," not "shop.")
    What is "WorkSpace Studio?" I never heard of it before I ran this installer.
    What is the difference between "Workshop Studio" and "Workshop for WebLogic?"
    What do I download to get Eclipse-based Struts/JSP/Hibernate development tools?
    How do I install it?
    Thanks,
    Ethan
    Edited by ethanmichaels at 03/26/2008 4:48 PM

    Hi Ethan,
    The license you have purchased is for WorkshopStudio 10.2
    This allows you to develop Struts/Hibernate/JSP applications against both BEA and non BEA servers.
    Workshop for WebLogic allows users to develop applications against BEA WebLogic Servers and does not require a special license
    More information on Workspace Studio is available at http://edocs.bea.com/wlw/docs102/workspaceFAQ.html
    Hope this helps
    cheers
    Raj

  • ADF/TopLink/Struts - start browsing from a given row position?

    I created a web-application to browse a table called "Project" in the database using ADF/TopLink/Struts, following some online tutorials, and successfully deployed it to Tomcat 5.5.7. Now I am able to browse the table using the following link,
    http://localhost:8080/Project/browseProject.do
    Since there are too many data records in the table, I am wondering if there is a way to jump to a given row using something like,
    http://localhost:8080/Project/browseProject.do?Project_ID_No=123
    where "Project_ID_No" is the primary key of table "Project".
    I understand that we can retrieve the value of the "Project_ID_No" parameter from the HttpServletRequest. The question is how to obtain the currency corresponding to the value of "Project_ID_No" and perform some necessary steps afterwards?
    Thanks,
    Henry

    Sorry I haven't been able to reply, got dragged into an emergency project.
    I have it all working very well, and I really should have figured the commit thing out myself, I was just thinking about it way too hard.
    I do have one more quick question about something I was able to do, I want to have a link next to each row that will delete that row. In order to do that I need to:
    1) Set the current row
    2) Delete the row
    3) Commit
    I was able to do this declarative without having to create any extra data actions by passing three event params on a link such as the following
    &lt;a href="engineManagement.do?event=selectRow&rowKeyStr=&lt;c:out value='${Row.rowKeyStr}' /&gt;&event=Delete&event=Commit" &gt;Delete&lt;/a&gt;
    (selectRow is bound to the setCurrentRowWithKey method)
    Should I be using the event system in this way?
    This seems to work very well, but i'm concerned about the ordering of the events, if they get executed in the wrong order, the wrong row will be deleted or the transaction won't get committed. Will the ADF controller always execute events in the order they appear on the query string?

Maybe you are looking for

  • Here and Now for Nokia N8 doesn't work!

    Hi, I have had this problem ever since I received my phone during Christmas. I have contacted Nokia Support through the phone and email. Of course, sadly, no response and supposedly they escalated the issue. Whenever I run the application and run a s

  • How to clean harddrive in mac book pro 2011

    It seem it is getting slow using internet and watch video with the popup window requesting access and did not goes away no matter you accept or deny access How to clean the hard drive and How to get rid of that pop up widow when watch video from webs

  • SAP Job Market

    I think the recession is finally over and the job market has picked up. Recruitment seems to be in full flow. How do I know? The number of do-my-work because im-new-in-abap kind of posts is on an all-time high after a long time. And you thought I was

  • Process for cash sale

    Hi, How does cash sale process work in SAP system? What happens if cash sale involves delivery which is relevant for picking? Thanks

  • CMP and TO

    Hi, i'm trying to use the TO (Transfer Object) Pattern, and i used Firestorm to generate all the TOs and CMP Entity Beans I'm trying to create a new Entity Bean, and the create method for this CMP receives the TO (like it says on the Pattern). The pr