Life before struts, jsf

Hello,
I wanted to start studying struts but before actually diving into it, I also wanted to know how life was before struts, jsf etc.
What I learnt:
1. The registration form is a simple html form with its action as "register.html"
2. The controller servlet creates a hashmap of all actions as keys and handlers as values. register.html has a corrosponding RegistrationHandler
3. RegistrationHandler provides with the view.
4. The view is a jsp page with a useBean that populates the bean. The bean class has a method that stores the data into database which is called from the view.
So,
View is the jsp page
Controller is the Servlet
Model is the bean
I just wanted to know whether I am right with MVC or not. If right, where does struts, jsf fit in and where do they provide the flexibility.
regards,
vijay.

The way to go forward is to use JSF both for the view and the controller layer.
Mixing the two usually doesn't produce good results.
The JSF controller layer is more advanced than the old Struts framework and is the standard in JEE 5.0 - so you should definetly start looking into developing new applications with this framework.

Similar Messages

  • Do some processing before loading jsf fragment created using adf task flow

    Hi,
    I am working on JDev11g.
    I want to create SelectItems of SelectOneChoice dynamically before loading jsf fragment created using adf task flow
    I tried by implementing RegionController class's method RefreshRegion in my backing bean of jsf page fragement to do some processing before loading region
    But it seems to be not feasible approach because it is getting called every time any component on fragement gets partially submitted.
    Is there any method which is called only first time when region is loaded ?
    Or any other solution to achieve this.
    Regards,
    Devang

    Hi,
    don't think so. You would need a phase listener, but I don't see how you get it in. Wha about using a dynamic region and then use the method that is called from the dynamic region first time it is rendered?
    Frank

  • How do you kick-off an action/event before a JSF Portlet is rendered?

    Hi,
    I am creating JSR-168 Portlets using Sun RI 1.1 and need the ability to call an action (ie. method) of the JSF Portlet before it is rendered. Any ideas how to do this?
    Scenario To Resolve
    If a customer is on the Check-Out Portal Page, the check-out portlet will initially display the shopping cart information.
    The customer will then click buy and the portlet will display a confirmation page.
    Now, if the customer decides to do additional shopping (ie. place a second order).
    The customer will navigate to a different Portal Page to browse items.
    Once the customer is done shopping, the customer will click Check-Out and the Portal will display the Check-Out Portal Page. Currently, when the check-out portlet is rendered, the portlet is automatically rendering the confirmation page (ie. the last state of the check-out portlet).
    Question
    How can I control the state of the portlet so that the initial state of the portlet is rendered (ie. the shopping cart information)?
    - Is there something built into the JSR-168 Spec? Or, Sun's JSF RI 1.1 that will enable me to kick-off an action/event before a JSF Portlet is rendered?
    - If this functionality is not built in, has anyone faced this challenge? If so, how did you extend the framework to resolve it?

    Hi,
    I am creating JSR-168 Portlets using Sun RI 1.1 and need the ability to call an action (ie. method) of the JSF Portlet before it is rendered. Any ideas how to do this?
    Scenario To Resolve
    If a customer is on the Check-Out Portal Page, the check-out portlet will initially display the shopping cart information.
    The customer will then click buy and the portlet will display a confirmation page.
    Now, if the customer decides to do additional shopping (ie. place a second order).
    The customer will navigate to a different Portal Page to browse items.
    Once the customer is done shopping, the customer will click Check-Out and the Portal will display the Check-Out Portal Page. Currently, when the check-out portlet is rendered, the portlet is automatically rendering the confirmation page (ie. the last state of the check-out portlet).
    Question
    How can I control the state of the portlet so that the initial state of the portlet is rendered (ie. the shopping cart information)?
    - Is there something built into the JSR-168 Spec? Or, Sun's JSF RI 1.1 that will enable me to kick-off an action/event before a JSF Portlet is rendered?
    - If this functionality is not built in, has anyone faced this challenge? If so, how did you extend the framework to resolve it?

  • How to integrate Struts & JSF ?

    Hi all,
    How to build an application using Struts 'framework' and JSF ? (Example please)

    A good place to start is the Struts-Faces integration library:
    http://cvs.apache.org/builds/jakarta-struts/nightly/struts-faces/
    It supports the use of JSF components in a Struts-based application. If you already have a Struts application then this library would be useful.
    Justyna

  • Struts & JSF

    I like the productivity that JSF components have to offer by way of ADF Faces and I also like using Struts in the controller layer. Reading all the posts here regarding this topic it seems like using struts-faces is just a migration strategy. We have lot of applications written in Struts and would use another framework only if there is a compelling reason to do so.
    Does Oracle endorse using struts-faces? Is JSF the way to go forward?
    I am hoping I can get some answers here.

    The way to go forward is to use JSF both for the view and the controller layer.
    Mixing the two usually doesn't produce good results.
    The JSF controller layer is more advanced than the old Struts framework and is the standard in JEE 5.0 - so you should definetly start looking into developing new applications with this framework.

  • Steps of Struts JSF integration

    Can some one send me a simple example of Struts with JSF
    plz don'nt send the struts-faces example becz i already have that and it has some problem with weblogic8.1[Expression language limitation JSP2.0]
    Regds
    Amit Verma

    Hi ...
    Application (key for the Sales and Distribution application), Account determination type, Chart of accounts (from the FI System), Customer account assignment group, Materials account assignment group, Account key
    The allocated accounts are used to post revenues, surcharges and discounts automatically.
    You have defined the access sequences and the account determination types for Sales and Distribution.
    You must define charts of accounts and G/L accounts in the FI System.
    Activities
    1. Check to what extent you can use the allocations contained in the
    SAP standard version.
    2. Allocate the G/L accounts for each access sequence.
    Path
    IMG (Implementation Guide) --> Financial Accounting -->General Ledger Accounting --> Business Transaction -->Integration --> Sales & Distribution --> Prepare Revenue Account Determination.
    Transaction Code VKOA
    1. Customer Account Assignment Groups:
    Domestic Customers, Foreign Customers and Affiliated Companies. I think they are finalized.
    2. Material Account Assignment Groups :
    3. Trading Goods and performances.
    They are not exhaustive and they need revision.
    Finished Goods & Semi Finished Goods are covered under Trading Goods. Performances are said to be Nil. Shall we have Material Groups as Trading, Finished, Packaging and Services.
    3 Condition Types : KOFI & KOFK ( Account Assignment for CO)
    4 Account Keys
    ERL Sales
    RDM Rounding
    ERS Sales Deductions
    ERF Freight Collected Domestic & Foreign
    EIN Transit Insurance Collected
    EXD Excise Duty
    ERB Rebate Sales Deductions
    ERV Rebate Accruals
    EVV Cash Clearing
    MW3 Sales Tax
    MWS Tax on sales & purchases
    This is for FI-SD,

  • I just got an iPod touch, it was fine with battery life before I added Apps but now the battery doesn't last more than a night, what should I do?

    I just got an ipod touch from my sister yesterday which she has had since October. The battery life went for days with her but as soon as I started checking my email and adding apps the battery doesn't last more than a couple of hours. I deleted some apps but no change. I also kept my email logged in and my notifications turned on so I'm wondering if they are part of the problem. Please let me know what I should do. Thank you so much.

    Yes, notifications are part of the problem.  For more information look at at the previous posts on this problem.  Yu can find some of those on the right hand side of this page under the heading: More Like This.  I keep mine in airplane mode when asleep.

  • My life before SAP... and now

    Hello, dear fellow consultants,
    during last few weeks I have answered few threads and personal emails about how to start with SAP, how to become that dark and mysterious SAP consultant and started thinking about that a lot. I have written an article that I am going to post in a day or two, but before I do so, I would like to ask YOU, what would you recommend to a SAP wannabe, how one can start with SAP. And that is connected with my second question: I would love to hear the stories how did YOU start with SAP.
    It is (a) a personal question, maybe this thread (b) can help some newbies and (c) I have read few stories about how people started to be active on SDN, but I don´t remember any story about how one started with SAP.
    I welcome any inputs:)) And am sorry if I ask about your personal secrets (any you will have to kill me next:)))
    Regards Otto

    Thanks Kishan ...Nice one but see my reply below
    Sorry Dinesh I am in Vacation...and Went to a places where there is 'NO TECHNOLOGY'  :)..
    Thanks for still remembering me I thought you people will forgot by this time
    'GOLD' No chance , I thought of Another person like me may exists but my Friends usually say "Master Peice " Exists only once ,
    I thought of giving chance to american friends But again tomorow is holiday
    John Smith = "American".
    John Smith started the day early having set his alarm clock (MADE IN JAPAN) for 6 a.m.
    While his coffeepot (MADE IN CHINA) was perking, he shaved with his electric razor (MADE IN PHILIPPINES) .
    He put on a dress shirt (MADE IN SRI LANKA), designer jeans (MADE IN SINGAPORE) and tennis shoes (MADE IN
    VIETNAM). After cooking his breakfast in his new electric skillet (MADE IN INDIA), then he sat down with his calculator (MADE IN MEXICO) to see how much he could spend today.
    After setting his watch (MADE IN TAIWAN) to the radio (MADE IN INDIA), he got in his car (MADE IN GERMANY) filled it with GAS (from Saudi Arabia) and continued his search for a good paying AMERICAN JOB.
    At the end of yet another discouraging and fruitless day checking his computer (MADE IN MALAYSIA), John decided to relax for a while. He put on his sandals (MADE IN BRAZIL) poured himself a glass of wine (MADE IN FRANCE) and turned on his TV (MADE IN KOREA), and then wondered why he can't find a good paying job in AMERICA.
    AND NOW HE'S HOPING HE CAN GET HELP FROM HIS PRESIDENT (MADE IN KENYA)
    Any oblig's???
    Sas
    Edited by: saslove sap on Apr 1, 2010 4:08 PM

  • Struts/JSF - struts-faces.jar

    I searched the jakarta source and binary
    sites and don't see this library anymore.
    (Unless I go to the contrib dir where the source code is file
    by file).
    Where can I find struts-faces-0.4.zip and its source code (bundled)
    so I can debug my errors?
    Thanks,
    gs

    http://archive.apache.org/dist/jakarta/struts/old/release/struts-faces/

  • Oracle Portal Supported Frameworks? (struts,jsf,ajax or any others)

    Hi All,
    Which frameworks does oracle portal support exactly?.
    Message was edited by:
    user458538

    Hi All,
    Which frameworks does oracle portal support exactly?.
    Message was edited by:
    user458538

  • Issue in converting Struts view to JSF view using struts-faces integration

    Hi All,
    I am facing a issue in my Sruts to JSF conversion application using struts-faces.jar integration library.
    Need expert's help desperately as I am not able to use <s:form> tag in my new jsf page to call a struts action.
    I want to call a struts action from my web page designed using JSF,
    but it seems impossible without using <s:form> tag from struts-faces integration library.
    Please suggest how to resolve this...
    I am using WSAD 5.1 IDE with inbuilt Test environment WebSphere server
    JSF Version: Sun's RI 1.1
    Struts framework: 1.2.6
    Struts-Faces Integration Library version: 1.0
    I have configured a controller element in struts-config.xml file as has been suggested by different online
    documents I studied:
    <controller>
    <set-property property="processorClass"
    value="org.apache.struts.faces.application.FacesRequestProcessor"/>
    </controller>
    But configuring a controller does not allow my test server to start up properly and due to errors the ActionServlet also becomes unavailable.
    If I comment the controller and start the test server it starts fine but then I cannot access the converted jsf page which contains the <s:form action="/xxxxx.do"> tag.
    If now I get back to <h:form> tag instead of <s:form> tag with a <h:commandButton action="xxxx.do"/> for form submission in my jsf page, I see the html page generated with all components but now checking the html source generated I see
    <form action="/contextName/jspFolder/sameDisplayedPage.jsf"> which is not valid and never gets called successfully.
    I think someways I need to use the <s:form> tag with the controller configured properly to use the struts-faces integration library's request processor, to get things working. But HOW???
    Following is the error I get if I use the <controller> tag element in struts-config.xml file and start the server.
    This error appears on starting the server without accessing any application's jsp web page
    [6/12/06 15:31:14:109 IST] 3e311815 ActionServlet E org.apache.struts.action.ActionServlet Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable. Most likely, this is due to an incorrect or missing library dependency.
    [6/12/06 15:31:14:109 IST] 3e311815 ActionServlet E org.apache.struts.action.ActionServlet TRAS0014I: The following exception was logged java.lang.IllegalAccessError: org.apache.commons.digester.SetPropertyRule tried to access method org/apache/commons/beanutils/BeanUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    at org.apache.commons.digester.SetPropertyRule.begin(SetPropertyRule.java:198)
    at org.apache.commons.digester.Rule.begin(Rule.java:200)
    at org.apache.commons.digester.Digester.startElement(Digester.java:1273)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.commons.digester.Digester.parse(Digester.java:1548)
    at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:736)
    at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:685)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:82)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
    at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:870)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)
    at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1277)
    at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)
    at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:387)
    at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:209)
    at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:987)
    at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)
    at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:418)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:787)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:575)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
    at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
    at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
    at java.lang.reflect.Method.invoke(Method.java:386)
    at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
    at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
    [6/12/06 15:31:14:188 IST] 3e311815 WebGroup E SRVE0020E: [Servlet Error]-[ActionServlet]: Failed to load servlet: javax.servlet.UnavailableException: org.apache.commons.digester.SetPropertyRule tried to access method org/apache/commons/beanutils/BeanUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:366)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:82)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
    at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:870)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)
    at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1277)
    at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)
    at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:387)
    at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:209)
    at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:987)
    at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)
    at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:418)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:787)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:575)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
    at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
    at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
    at java.lang.reflect.Method.invoke(Method.java:386)
    at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
    at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
    (same error message re-iterates/repeats itself... and finally -
    Error 503: Failed to load target servlet [ActionServlet] comes in web-browser
    Following is the error which I get if I comment the <controller> element in the struts-config.xml file
    and use a <s:form action="xxxxx.do"> in the struts converted jsf page. The web-server starts fine, but
    accessing the jsf page givers error as:
    [6/12/06 15:38:00:781 IST] 696f19de WebGroup I SRVE0180I: [Sample Struts-JSF integration application] [training2] [Servlet.LOG]: /jsp/welcomeF.jsp: init
    [6/12/06 15:38:01:219 IST] 696f19de WebGroup E SRVE0026E: [Servlet Error]-[]: java.lang.NullPointerException
    at org.apache.struts.faces.renderer.FormRenderer.encodeBegin(FormRenderer.java:114)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:683)
    at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:591)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:478)
    at org.apache.jsp._welcomeF._jspService(_welcomeF.java:207)
    at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:662)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at org.apache.struts.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
    at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:992)
    at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:551)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:412)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
    at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
    at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
    at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
    at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
    at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
    Finally if I change my <s:form action="xxxxx.do"> tag to
    <h:form>
    <h:commandButton id="submit" action="xxxx.do" value="Submit" />
    I see the webpage coming up in the browser (no controller element used in struts-config.xml file this time)
    But in the html source of this html created from jsf I see
    <form id="_id2" method="post" action="/training2/jsp/welcomeF.faces" enctype="application/x-www-form-urlencoded">
    here form's action attribute is pointing to the same displayed page with the context name prefixed. I
    assume it is because jsf could not resolve the "xxxx.do" action to anything so set it to the same displayed page.
    May be I am wrong as usual...
    Below is the simple struts jsp page which I need to convert to jsf page as I am converting only the View part of application.
    I want to use the same struts beans and application logic at the back-end. At front-end I need UIComponents from JSF to be used.
    Following is the struts jsp page
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <%@ taglib prefix="html" uri="/WEB-INF/lib/struts-html.tld" %>
    <%@ taglib prefix="bean" uri="/WEB-INF/lib/struts-bean.tld" %>
    <html:html>
    <html:base/>
    <html:messages id="messages" />
    <font style="color:red; font=weight:italic; font-family: century gothic">
    <html:errors/>
    </font>
    <BODY>
    <P>Sample Struts and JSF integration example</P>
    <P>This one is being displayed via Struts specific tags</P>
    <html:form action="validateUser.do">
    <bean:message key="label.name" /> : <html:text property="name" />
    <bean:message key="label.password" /> : <html:password property="password" />
    <bean:message key="label.age" /> : <html:text property="age" />
    <bean:message key="label.city" /> : <html:text property="city" />
    <bean:message key="label.address" /> : <html:text property="address" />
    <html:submit property="submit" value="Show info via Struts" />
    </html:form>
    </BODY>
    </html:html>
    I have converted it into the following jsf page
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://struts.apache.org/tags-faces" prefix="s" %>
    <f:view>
    <HTML><BODY>
    <f:verbatim><P>Sample Struts and JSF integration example</P></f:verbatim>
    <f:verbatim><P>This one is being displayed via JSF tags</P></f:verbatim>
    <h:form> <!-- Want to use s:form tag instead of this h:form tag -->
    <h:inputText id="name" value="#{userForm.name}" /><f:verbatim>
    </f:verbatim>
    <h:inputSecret id="password" value="#{userForm.password}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="age" value="#{userForm.age}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="city" value="#{userForm.city}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="address" value="#{userForm.address}" /><f:verbatim>
    </f:verbatim>
    <h:commandButton id="submit" action="#{user.facesAction}" value="Show info via Struts" />
    </h:form>
    </BODY></HTML>
    </f:view>
    I am very hopeful of some answer from respected group experts, please help me.
    I am in urgency of course but would not push for immed. response like other, just want some help for sure that is going to
    be extremely valuable to me. Anticipating a helping hand...
    Thanks and Regards
    Vishal Sharm
    Time's fun when you're having flies � Kermit, the Frog
    -------------------------------------------------------------------------

    I've managed to get this working Ok from JDeveloper:
    See:
    http://www.groundside.com/blog/content/DuncanMills/J2EE+Development/?permalink=573FDB6F8D918B9704907899635CABB1.txt
    http://www.groundside.com/blog/content/DuncanMills/J2EE+Development/?permalink=2B04ACE99A6437EDED775F15553D1DED.txt
    Basically you just have to fiddle around with Library settings to get this working OK.
    As to how useful this is, well that's up to you - I'd not regard Faces + Struts as a must use combination, rather it's a can mix if you really need to. Look at Faces and Faces navigation first and see if that actually gives you enough before you start to look at mixing.

  • Execute Logic Before JSF Page Is Processed

    In my task flow, I have two view activities.  When a user executes a specific operation, e.g., click on Submit command, in View A, the JSF page in View B is displayed.  View B's JSF page has three ADF components(2 forms and a table) that were created from different view objects in the Data Control section.  Before the JSF page is loaded, a method will execute the necessary logic for the three ADF components.  Is this possible?
    I am using JDeveloper 12.1.3.  I am not able to determine where I can specify the name of  the name of the method that will be invoked before View B's JSF page is invoked.

    You can add a method call in between when you navigate between A to B in your Task Flow.
    You can get some idea from this link :
    Johny's Tips: ADF: How to execute the ViewObject with a ViewCriteria on the PageLoad in ADF Web Application
    Cheers
    AJ

  • JSF, JPF, Struts, SDO小探

    一直对这几个概念不是非常清楚,一直对学习JPF心存疑虑。这几天,花了一点时间,大致上看了一下这几个东西的文档,有了一点收获,和大家探讨一下。
    Struts:不用多说,大家都非常熟悉了。
    Service Data Object(SDO)是JSR235讨论的一种简化数据访问的结构。在Web应用中,可以使数据源对开发人员透明。
    J2EE标准的Java Server Faces(JSF),BEA的JPF,都是基于Struts的,那么有一些什么区别呢?
    JSF更多的是关注于页面的表现,很多结构和Struts非常相似。事实上,JSF的操刀者正是Struts的作者。可以在JSF中非常明显地看到,设计思路是在Struts上的提高和完善。比如,在Struts中,ActionForm事实上就是一个Bean,储存了数据。在JSF中,直接引入了Managed-Bean的概念,这些储存有数据的Bean可以直接放到页面上,这些Bean由程序员完成,美工只是直接把BEAN拖放到页面上,这样,进一步分割了Model和View,简化了开发过程,更加便于协作开发。
    BEA的JPF更多地注重页面和数据的绑定。事实上,绝大多数的动态Web页都涉及到数据的读取和存储,JPF封装了大量的数据绑定功能,也简化了这一类的开发。
    从IBM的红皮书上可以看到,现在IBM的所有涉及到JSF的例子,都用了WDO(WebSphere Data Object)。我的理解,这是SDO的一种。事实上,SDO还只
    是处于JSR状态下,IBM实现了部分的SDO规范的功能。在IBM的例子中,可以看到,通过JSF和WDO/SDO,页面可以很容易地绑定数据,显示数据。
    这一点,和BEA的JPF有异曲同工之妙。巧合的是,JSR235 SDO规范专家组的领头人正是BEA和IBM。
    由此,我得出如如下的结论:
    1、JPF是基于Struts的,将来会基于JSF
    2、JPF和Struts/JSF不是一个层面的东西,JPF是比后两者更高级的框架
    3、JPF在某种程度上,是BEA的SDO实现,将来的SDO正是规范中,必将有JPF的影子
    4、虽然IBM现在在热推JSF,但是其红皮书中承认,JSF目前还是非常新的技术,并不完善,还有待于得到广泛的支持。Apache正在开发JSF-Struts库,
    以便于Struts到JSF的迁移。所以,现在不必急追JSF,有了扎实的Struts知识,迁移到JSF不会太困难
    5、学习JPF是安全的,(这和我以前的观点不同,以前对于JPF了解不深刻,向BEA致歉),将来的SDO会有JPF的影子。
    欢迎大家讨论。

    都劳动高人了,荣幸荣幸。
    在JPF刚出现的时候,就得知BEA非正式地提供了可以迁移到Tomcat的工具。凭借BEA的实力,我毫不怀疑,将来的Java Control和JPF等,都可以顺利地移植到Tomcat或者WAS上运行,甚至连运行库都不需要,直接翻译成标准的Servlet代码。这是完全可行的。
    我前面所说的都是从程序员开发的角度谈,不涉及运行时兼容的问题。Beehive把Workshop Runtime开源了,大家都可以来研究了,非常有利于Workshop的推广。但是,并不是开源的东西一定可以成为标准,承认吗?Tapestry也很不错,也是开源的,但是偏偏Struts最为市场接受,成为了事实上的标准。
    我们是不是不能排除这样一种可能,Beehive开源了,也在一定程度上被广泛接受了,但是就是没有成为标准。成为标准的是JSF+SDO,假设这样。那么,作为程序员,我就有风险了。我花了时间精力,学习了Workshop Framework,也很精通Java Controls了。我毫不怀疑,我写的程序,可以被deploy到任何J2EE兼容的App Server上去。
    另一方面,移植的过程是很复杂的,谁都不能保证移植的程序100%可运行。但是客户的平台是多样化的,出于以后维护的考虑,比如客户是小公司,一直运行Tomcat,他的维护工程师只懂JSP/Servlet/Struts,不懂JPF,那么为了维护,他也希望我用他懂得技术开发。即使我的JPF应用顺利部署到他的Tomcat上,他对今后他将面对的维护也会有畏惧。我总不能强迫他学JPF吧。
    而且客户,都有一种惯性。用惯了.NET的,你向他推荐J2EE都很困难;同理,如果向他推荐非常先进的JPF,客户未必接受。
    我,作为程序员,有交流的问题。比如说,JSP/Servlet,只要是J2EE程序员,大家都懂。无论在Team内部,还是到dev2dev,developerWorks, TSS上,大家都用同样的语言,JSP/Servlet规范和相关的术语。同样的道理,Struts由于是事实上的标准,也是可以被无障碍交流的,大家都懂ActionForm, ActionServlet。但是,只要Workshop一天没有成为标准,就有可能成为一种外语。我在BBS上跟人讲,NetUI:XXXX,不是人人都懂,我讲JCS,JPF,别人就未必懂。我只能到dev2dev,找你Hilaser请教。
    其实,我认为,标准的含义对我而言,就是方便与人交流。UML语言诞生的初衷也是为了交流。虽然,大家都知道,JPF的底层就是Struts,但是偏偏封装后,名字改了,虽然都是巧克力,但是你说它叫“朱古力”,可我只知道他叫“巧克力”怎么办?那就要求我必须同时懂得Struts和JPF,自己给自己翻译了。或者用工具,把JPF转换成Struts,然后拿着机器生成的Struts代码和人讨论?
    谈到这里,所有问题的根出现了,那就是
    * BEA是否有足够的实力,把自己的专有技术推广成标准 ? *
    是要所有的人都接受,成为标准;而不仅仅是开源。
    这里有太多的非技术因素。且不说BEA的股价,庞然大物如IBM或者Oracle的态度。作为客户,他是否愿意押宝在BEA身上,明确BEA的JPF等技术就是将来的J2EE规范呢?恐怕比较难。即使庞大如IBM,客户也不会下这种赌注。客户一般都喜欢用成熟的技术。EJB2.0的规范出现是在哪一年?看看EJB2.0开始广泛运用又是在哪一年?
    这也是,WebLogic这么多年来备受青睐的原因,因为他的技术最标准。所以,我的建议是,在JPF明确成为事实上的标准前,还是持观望态度比较合适。因为JPF和基于J2EE规范的不同Implementation不同,JPF的API是独特的,事实上一个程序员如果只精通JPF,而不懂Struts和JPF的关系的话,那他就真的被绑在BEA上了。对于Struts、JSP/Servlet群来说,他是一个外星人。那么用漂亮的Workshop开发JPF的人,又有多少会想到去了解底层的Struts呢?
    其实,BEA为什么要重新搞一套特殊的API呢?Struts的不足,可以在保留Struts API的基础上,进行扩展,没有必要全部改头换面。保留Struts API的TAG要省多少事啊,再加上BEA的扩展,不一样可以吗。为什么全部换掉呢?
    JPF的技术真的不错,但是,我只了解大致原理,我不去看具体的语法API,我等它成为标准。

  • Masters Project:  Comparing Struts and JSF

    I'm doing a research paper for my MSCS degree at Rensselaer at Hartford, comparing the efficiency/effectiveness of using Struts alone, vs. adding JSF. I'm learning both as I go, but with a decent base in J2EE web apps.
    Would you consider sharing your experience and opinions, in a response to my questionnaire? It's in development, and I expect it will ask 5 questions on your background, and 10 -15 question on your experiences with the Struts/JSF comparison.
    The questionnaire should be available later today. Results need to be compiled in 7-10 days.
    Can you help? If so, I'll send you the questionnaire, either as a forum reply or direct email - your choice.

    Thank you, Sergei -- that is a helpful reference.
    In addition, though, I am obliged to analyze questionnaire responses as part of my research paper. Would you like to participate?

  • JSF requires Struts?

    Hi,
    I see a lot of examples of JSP and Struts and seems that one requires the other, it is true?
    Its is true I need Struts for use JSF?
    Thanks,
    Lorenzo

    No. JSF does not require Struts. There is an optional Struts-JSF integration library, developed by Struts, that allows integration between the two technologies.
    -- Adam Winer (EG member)

Maybe you are looking for