Announcement

Collapse
No announcement yet.

Action in Action aufrufen??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Action in Action aufrufen??

    Hallo!!<br>
    Ist es moeglich von einer ActionClass eine andere aufzurufen? Ich habe folgendes Szenario: Eine ActionClass stellt mir Daten zum Darstellen bereit. Eine andere ActionClass aendert Daten. Nun will ich den aktuellen Stand visualisieren und hierzu nicht wieder das selbe codieren wie in der ersten ActionClass!<br>
    Meine processRequest-Methode der ActionClass hat Parameter vom Typ HttpServlet, HttpServletRequest und HttpServletResponse.
    <br><br>
    Danke, Bav

  • #2
    Hallo!

    Hast Du es mal mit <i>request.forward()</i> oder <i>request.include()</i> versucht?

    Gruß, Jör

    Comment


    • #3
      Hallo bavarian,
      ich weiß jetzt nicht, ob das die optimale lösung ist und, ob das genau das ist, was Du brauchst. Ich habe das Hintereinanderschalten von Actions über die struts-config.xml gemacht. Dort kannst Du ja für Action-Elemente mehrere Forwards definieren. Beim path-Attribut habe ich dann statt auf eine jsp auf eine andere Action verzweigt. Etwa so:<pre> <action path="/updateBestellForm"
      type="de.havanamainz.actions.shop.UpdateBestellFor m"
      input="/WEB-INF/pages/shop/positionForm.jsp"
      name="BestellForm"
      validate="true">
      <forward name="redirectToKundenDatenForm"
      path="/displayKundenDatenForm.do"
      redirect="true"/>
      </action>
      </pre&gt
      http://www.winfonet.eu

      Comment


      • #4
        Hallo!<br>
        Folgendes sollte ich wohl noch erwaehnen: Es handelt sich nicht um Struts sondern um ein firmeneigenes Framework... das ist auch das groesste Prob - es gibt keine Literatur wo man solche Dinge nachlesen kann!!<br>
        @Joerg Loosen: Mein request-Parameter kennt weder die Methode forward, noch include! Zwar hat meine Basisklasse ne Methode forwardRequest, allerdings kann ich hier nur auf ne JSP umleiten!<br>
        @ngomo: Ich denke hier habe ich das selbe Problem - ich kann nur auf ne JSP forwarden... ganz abgesehen davon, dass es in dem von mir verwendeten Framework das Attribut forward leider nicht gibt! <br>
        Auf jeden Fall mal Danke fuer die Ideen!!!<br>
        Ich hatte eigentlich daran gedacht, meinen Request mit nem RequestWrapper umzubauen und dann die service-Methode des Servlets aufzurufen... aber so recht funzt das auch nicht! Gibt es denn noch weitere Ideen<br><br>
        Ciao Ba

        Comment


        • #5
          Hallo Bav,
          Der Tipp von Joerg war etwas ungenau. Die Methoden, die er beschrieben hat, werden vom Interface <i>RequestDispatcher</i> zur Verfügung gestellt. Den <i>RequestDispatcher</i> holst Du Dir über die folgenden Mehtoden:
          <i>httpServletRequest.getRequestDispatcher()
          servletContext.getNamedDispatcher()</i>

          Und mit den Methoden kannst du dann an ein anderes Servlet/JSP weiterleiten:
          <i>requestDispatcher.include(req, res)
          requestDispatcher.forward(req, res)</i>

          Schau Dir am besten das Javadoc zum RequestDispatcher an. Steht in der Servlet-API oder im J2EE-API-Doc.
          ngom
          http://www.winfonet.eu

          Comment


          • #6
            Hallo ngomo!<br>
            Na nun weiss ich auch wieder warum mir die Methoden so bekannt vorkamen... allerdings verwende ich diese nicht, da ich ueber meine Basisklasse erwaehnte forwardRequest() verwenden kann und mir den RequestDispatcher nicht extra holen brauche. (Ja ja, bin ein wenig faul...)<br>
            Ich bin inzwischen allerdings auf die Loesung gekommen! Wenn ich Deployment-Deskriptor beim Application Action Class Mapping fuer eine Action mehrere ActionClasses angebe werden diese nacheinander abgearbeitet... solange nicht eine dieser ActionClasses false liefert! Schoen... <br><br>
            Also noch einmal Danke! Ba

            Comment

            Working...
            X