tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
974
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tonteria Tonteria ist offline Mitglied
    Registriert seit
    Jan 2007
    Beiträge
    17
    Hi,

    ist es möglich dass man ein umfangreiches Formular auf mehrere Tabs verteilen kann, die alle auf eigene Views verweisen ? In einer Weise dass man unter den Tabs einen submit-Button hat, der die Informationen aus allen Views nimmt und abschickt ?

    Beispiel home.xhtml :

    HTML-Code:
    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
        xmlns:s="http://jboss.com/products/seam/taglib"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:rich="http://richfaces.org/rich"
        xmlns:a4j="http://richfaces.org/a4j"
        template="layout/template.xhtml">
    
        <ui:define name="body">
    
            <h1>Heading</h1>
            <rich:panel>
                <h:panelGrid columns="2">
                    <h:graphicImage value="/img/bild.gif" alt="Seam logo"/>
                    <s:div styleClass="info">
                        <p><strong>Heading</strong></p>
                    </s:div>
                </h:panelGrid>
            </rich:panel>
            
        <rich:tabPanel switchType="ajax" id="menuPanelGroupLeft">
        
        <rich:tab label="Übersicht">
        <a4j:include  viewId="/overview.xhtml" rendered="#{identity.loggedIn}"/>
        </rich:tab>
        
        <rich:tab label="Autoren">
        <a4j:include  viewId="/authors.xhtml" rendered="#{identity.loggedIn}" />
        </rich:tab>
        
        <rich:tab label="Institutionen">
        <a4j:include  viewId="/institutions.xhtml" rendered="#{identity.loggedIn}" />
        </rich:tab>
        
        <rich:tab label="Inhalt">
        <a4j:include  viewId="/content.xhtml" rendered="#{identity.loggedIn}" />
        </rich:tab>
        
        </rich:tabPanel>
    
    <!-- Hier kommen die Buttons? -->
    
        </ui:define>
    </ui:composition>
    Besten Dank für jeden Hinweis im Voraus.

    Herzliche Grüße,

    Tonteria
     

  2. #2
    Avatar von Sentoo
    Sentoo Sentoo ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Brühl
    Beiträge
    131
    Hallo Tonteria,

    vielleicht habe ich den Sinn der Frage noch nicht ganz verstanden, ich glaube Du musst gar nichts mehr machen, dass sollte schon funktionieren

    Hinter den a4j:include stecken ja wiederum xhtlm Seiten, die letzten Endes ihre Werte in eine Bean stecken.

    Meine Frage an Dich wäre, welchen Scope hat die Bean? Ich tippe auf View Scope, da Du JSF 2 verwendest.

    Denn, dann macht die Idee keinen Sinn

    Dein rich:tabPanel hat switchType="ajax". Das bedeutet, dass die Werte der Eingaben an die Attribute der Bean übergeben werden, in dem Moment, wo ein Tab gewechselt wird oder die Seite submitted wird.

    Die Buttons, die Du auf der Seite anzeigst, sollen doch "nur" die Verarbeitung der Werte veranlassen, oder? Wo ist denn das Problem, dass Du hast?
     

  3. #3
    Tonteria Tonteria ist offline Mitglied
    Registriert seit
    Jan 2007
    Beiträge
    17
    Hi Sentoo,

    vielen Dank für deine Hilfe. Bisher hatte ich noch kein Problem, konnte mir nur nicht genau vorstellen, wie man den Entity Manager veranlasst mit einem Button gleich mehrere Entities zu persistieren. Für die Sessionbeans habe ich keinen scope angegeben, dann sollten diese standardmäßig view-scope erhalten, oder ?

    Also was erstmal zu tun ist :

    1. switchType="client" setzen

    2. scope der sessionbeans (für die manipulation der entity-beans) auf "Conversation" setzen

    ?

    Habe nun :

    HTML-Code:
        <h:commandButton id="add" value="Submit"
        action="#{entityHandler.persistData}" />
    in die home.xhtml integriert.
    Leider passiert nichts. Wenn ich den Button in den View integriere, in dem auch die Eingabefelder sind, funktioniert es. Hmm...
    Geändert von Tonteria (02.08.10 um 15:58 Uhr)
     

  4. #4
    Avatar von Sentoo
    Sentoo Sentoo ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Brühl
    Beiträge
    131
    Hi Tonteria,

    nein, default ist der request scope.
    Zitat Zitat von http://mkblog.exadel.com/jsf/learning-jsf2-managed-beans/
    @RequestScoped – sets the scope (request) into which this bean will be placed. If scope is not specified then bean will default to request scope.
    Und ich meine @ViewScoped sollte reichen. Den Conversation Scope gibt es (eigentlich) nicht. Außer ihr verwendet Frameworks, die den anbieten. Das weiß ich nicht.

    Wenn nichts funktioniert, wo hast Du denn die <h:form> tags? Stecken die in der "layout/template.xhtml"?

    Ah, fast vergessen. Der switchtype "ajax" ist schon ok. Ihr müsst ausprobieren, welcher switchtype für euch gut - im Sinne von gefühlter Reaktionszeit beim User - ist.
    Geändert von Sentoo (03.08.10 um 06:37 Uhr)
     

  5. #5
    Tonteria Tonteria ist offline Mitglied
    Registriert seit
    Jan 2007
    Beiträge
    17
    Hi Sentoo,

    meine Frage war wahrscheinlich nicht präzise genug gestellt und ich hab zu sehr mit Codebeispielen gegeizt. Jedenfalls hat in der home.xhtml die <h:form> </h:form> - Umkleidung gefehlt. Also ein absolut vermeidbarer Fehler . Danke trotzdem für deine Mithilfe ! Weiter so ! Ich werd versuchen mich auch einzubringen sobald ich entsprechendes Wissen vorweisen kann.

    Beste Grüße,

    Tonteria
     

Ähnliche Themen

  1. ausgabe auf mehrere seiten verteilen!
    Von redback79 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 28.01.11, 17:14
  2. Wie erstelle ich mehrere Tabs ?
    Von Roma3 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 09.08.08, 13:00
  3. Antworten: 4
    Letzter Beitrag: 27.09.04, 16:35
  4. Formular auf mehrere Seiten verteilen
    Von themonk im Forum PHP
    Antworten: 8
    Letzter Beitrag: 20.08.04, 16:15
  5. Antworten: 4
    Letzter Beitrag: 06.05.04, 16:53

Stichworte