Primefaces COmmandBUtton

moessi91

Bekanntes Mitglied
Hallo,
ich versuche gerade eine Seite mit Primefaces zu machen, jedoch habe ich bei dem Command Button ein Problem. Es sollen daten eingegeben werden und dann in einem Table angezeigt.
Der Button funktioniert dabei leider nicht.
Java:
<h:form prependId="false">
                <p:panel header="Neues Zimmer">
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Name :" for="sName"></h:outputLabel>
                        <p:inputText id="sName"
                                     value="#{testbean.zimmer.sName}" required="true"/>

                        <h:outputLabel value="Doppelbelegung Preis/Person: " for="lfDoppelPreis"></h:outputLabel>
                        <p:inputText id="lfDoppelPreis"
                                     value="#{testbean.zimmer.lfDoppelPreis}" required="true"/>

                        <h:outputLabel value="Einzelbelegung Preis/Person: " for="lfEinzelPreis"></h:outputLabel>
                        <p:inputText id="lfEinzelPreis"
                                     value="#{testbean.zimmer.lfEinzelPreis}" required="true"/>

                        <h:outputLabel value="Anzahl der möglichen Zusatzbetten:" for="iZusatzbetten"></h:outputLabel>
                        <p:inputText id="iZusatzbetten"
                                     value="#{testbean.zimmer.iZusatzbetten}" required="true"></p:inputText>

                        <h:outputLabel value="Preis pro Zusatzbett:" for="lfZusatzbettenPreis"></h:outputLabel>
                        <p:inputText id="lfZusatzbettenPreis"
                                     value="#{testbean.zimmer.lfZusatzbettenPreis}" required="true"></p:inputText>

                        <h:outputLabel value="Info:" for="sInfos"></h:outputLabel>
                        <p:inputTextarea id="sInfos" value="#{testbean.zimmer.sInfos}" required="true"></p:inputTextarea>
                        
                        <p:commandButton value="Add"
                                         action="#{testbean.add}" update="array" />
                        
                        <p:ajaxStatus style="width:16px;height:16px;">
                            <f:facet name="start">
                                <h:graphicImage value="images/ajax-loader.gif" />
                            </f:facet>

                            <f:facet name="complete">
                                <h:outputText value="" />
                            </f:facet>
                        </p:ajaxStatus>
                    </h:panelGrid>
                </p:panel>

                <p:dataTable id="array" value="#{testbean.array}" var="zimmer">
                 
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Name" />
                        </f:facet>
                        <h:outputText value="#{zimmer.sName}" />
                    </p:column>

                </p:dataTable>
                
            </h:form>
Der Button funktioniert einfach nicht, also er wird gar nicht ausgeführt wenn ich drauf Klicke.
Man sieht zwar kurz das AJAX gif aber mehr nicht.
so sieht die bean dazu aus:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import factory.ClassFactory;
import information.or_mapping.Kunde;
import information.or_mapping.Zimmer;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author CTK
 */
@ManagedBean
@RequestScoped
public class testbean
{
   
    private List<Zimmer> array = new ArrayList<Zimmer>();
    private Zimmer zimmer = new Zimmer();
    
    /** Creates a new instance of testbean */
    public testbean() 
    {
        zimmer.setsName("Test");
        array.add(zimmer);
    }
    public void penis()
    {
        Kunde k = ClassFactory.getKunde(-1);
        k.setId(71);
        k.load();
        System.out.println(k.toString());
    }

    /**
     * @return the zimmer
     */
    public Zimmer getZimmer() {
        return zimmer;
    }

    /**
     * @param zimmer the zimmer to set
     */
    public void setZimmer(Zimmer zimmer) {
        this.zimmer = zimmer;
    }
    public String add()
    {
        System.out.println("tests");
        getArray().add(zimmer);
        zimmer = new Zimmer();
        return null;
    }

    /**
     * @return the array
     */
    public List<Zimmer> getArray() {
        return array;
    }

    /**
     * @param array the array to set
     */
    public void setArray(ArrayList<Zimmer> array) {
        this.array = array;
    }
    
}
 

Nogothrim

Aktives Mitglied
ich glaube, dass liegt am Scope der ManagedBean. bei einer RequestScoped bean stirbt deine Liste ja ganz schnell wieder und deswegen ist sie beim update auch immer leer.
 

jwiesmann

Bekanntes Mitglied
Versuch mal deine Bean großzuschreiben. Oder gib den Namen mit an.
Java:
@ManagedBean(name="testbean")
@RequestScoped
public class Testbean
{
P.S. cooler Funktionsname penis .. musste ich doch tatsächlich schmunzeln :lol:
 

moessi91

Bekanntes Mitglied
habe jetzt den namen hinzugeschrieben und auch mal auf application gesetzt.
funktioniert beides nicht.
ich poste mal eben die ganze seite.
Java:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core">

    <h:head>
        <link rel="stylesheet" type="text/css" href="stylesheet.css" />

        <title>Hotelverwaltung</title>
    </h:head>

    <body background="images/background.jpg">
        <h:form styleClass=".ui-stack">
            <p:stack icon="/images/stack/stack.png" widgetVar="stack" id="stack" openSpeed="100" >
                <p:menuitem value="Terminal" icon="/images/stack/coda.png" onclick="TerminalDialog.show();term.focus()"/>
            </p:stack>
            <p:draggable for="stack"/>
            <p:dock>
                <p:menuitem value="Kalender" icon="/images/dock/kalender.png" onclick="KalenderDialog.show();text.focus()"/>
                <p:menuitem value="Zimmer" icon="/images/dock/zimmer.png" onclick="ZimmerDialog.show();zimmer.focus()"/>
                <p:menuitem value="Kunden" icon="/images/dock/kunden.png" onclick="KundenDialog.show();"/>
                <p:menuitem value="Hinzufuegen.." icon="/images/dock/hinzufuegen.png" onclick="HinzuDialog.show();"/>
            </p:dock>



        <p:dialog header="Kalender" widgetVar="KalenderDialog">
        

        </p:dialog>

        <p:dialog header="Zimmer" widgetVar="ZimmerDialog">
        </p:dialog>

        <p:dialog height="450" width="600" widgetVar="TerminalDialog" header="Terminal">
            <p:terminal commandHandler="#{terminalController.handleCommand}"
                        widgetVar="term"
                        id="Terminal"/>
        </p:dialog>

        <p:dialog header="Hinzufügen.." widgetVar="HinzuDialog">
            <h:form prependId="false">
                <p:panel header="Neues Zimmer">
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Name :" for="sName"></h:outputLabel>
                        <p:inputText id="sName"
                                     value="#{testbean.zimmer.sName}" required="true"/>

                        <h:outputLabel value="Doppelbelegung Preis/Person: " for="lfDoppelPreis"></h:outputLabel>
                        <p:inputText id="lfDoppelPreis"
                                     value="#{testbean.zimmer.lfDoppelPreis}" required="true"/>

                        <h:outputLabel value="Einzelbelegung Preis/Person: " for="lfEinzelPreis"></h:outputLabel>
                        <p:inputText id="lfEinzelPreis"
                                     value="#{testbean.zimmer.lfEinzelPreis}" required="true"/>

                        <h:outputLabel value="Anzahl der möglichen Zusatzbetten:" for="iZusatzbetten"></h:outputLabel>
                        <p:inputText id="iZusatzbetten"
                                     value="#{testbean.zimmer.iZusatzbetten}" required="true"></p:inputText>

                        <h:outputLabel value="Preis pro Zusatzbett:" for="lfZusatzbettenPreis"></h:outputLabel>
                        <p:inputText id="lfZusatzbettenPreis"
                                     value="#{testbean.zimmer.lfZusatzbettenPreis}" required="true"></p:inputText>

                        <h:outputLabel value="Info:" for="sInfos"></h:outputLabel>
                        <p:inputTextarea id="sInfos" value="#{testbean.zimmer.sInfos}" required="true"></p:inputTextarea>
                        
                        <p:commandButton value="Add"
                                         action="#{testbean.add}" update="array" />
                        
                        <p:ajaxStatus style="width:16px;height:16px;">
                            <f:facet name="start">
                                <h:graphicImage value="images/ajax-loader.gif" />
                            </f:facet>

                            <f:facet name="complete">
                                <h:outputText value="" />
                            </f:facet>
                        </p:ajaxStatus>
                    </h:panelGrid>
                </p:panel>

                <p:dataTable id="array" value="#{testbean.array}" var="zimmer">
                 
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Name" />
                        </f:facet>
                        <h:outputText value="#{zimmer.sName}" />
                    </p:column>

                </p:dataTable>
                
            </h:form>
        </p:dialog>

        <p:dialog header="Kunden" widgetVar="KundenDialog">
        </p:dialog>

           <!--- <h:commandButton image="/images/dock/zimmer.png" action="#{loggerBean.write('asd')}"/> !-->

        </h:form>
    </body>
</html>
ich check einfach nicht warum das nicht geht.... bin seit 5 tagen am verzweifeln
Naja bei anderen heißen die test :D bei mir eben penis ^^ bringt ein bisschen laune rein ^^
 

Nogothrim

Aktives Mitglied
Bau mal ein <p:panel> oder <h:panelGroup> um die DataTable, gib diesen eine Id und update dann das Panel statt der Table im commandButton.
 

JimPanse

Bekanntes Mitglied
Hi,

du hast mehrere Form's ineinander verschachtelt -> das Funktioniert so nicht!!!!!!

Code:
  <h:form styleClass=".ui-stack"> //1.
....
<h:form prependId="false"> //2.

 </h:form>
... 
 </p:dialog>
....
  </h:form>


Benutze mal nur eine Form oder trenn diese voneinander dann sollte es funktionieren!

s.h. Forms in HTML documents

laut HTML-Spezifikation dürfen Formulare auch nicht ineiander verschachtelt werden weil der Request dann nicht richtig interpretiert werden kann!

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Primefaces commandButton in einem Dialog/Form/PanelGrid führt actionListener nicht aus Web Tier 4
F PrimeFaces commandButton und actionListener Web Tier 6
A JSF Suche Beispiel für Primefaces Tree als Navigation Web Tier 3
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
M JSP PrimeFaces LayoutUnits <- breite lässt sich nicht erzwingen wenn 'center' Web Tier 0
T JSF Primefaces: selectedvalue von "selectmanyCheckbox" geht verloren Web Tier 0
W JSF Primefaces Selection Mode Web Tier 2
W JSF einfache DataTable PrimeFaces Web Tier 1
FINF_AW_Alex JSF PrimeFaces Dialog verlinken Web Tier 3
W JSF Primefaces Web Tier 5
F JSF Problem mit Primefaces Web Tier 7
F JSF Problem mit Primefaces Web Tier 4
S JQuery und Primefaces (Immer wieder Ärger damit) Web Tier 0
K JSON in Primefaces Table Web Tier 3
C JSF Zusammenarbeit Primefaces und Tomahawk. Web Tier 2
J JSF Grad der Barrierefreiheit von PrimeFaces, ICEFaces, RichFaces und OpenFaces Web Tier 2
P JSF Primefaces Picklist-Ersatz mit vielen Daten Web Tier 4
S primefaces picklist untereinander anordnen Web Tier 6
T JSF Primefaces beim öffnen eines p:dialog wird eine neue View ManagedBean erstellt Web Tier 2
M onNodeExpand listener in PrimeFaces Web Tier 4
F Primefaces Dialog Web Tier 7
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
F Primefaces Datatable => Inplaces Web Tier 3
F Primefaces Datatable Web Tier 6
F JSF Primefaces 3.3 treetable Web Tier 9
F PrimeFaces - selectOneMenu Web Tier 2
F PrimeFaces p:selectOneMenu funktioniert nicht Web Tier 12
M JSF Dynamische Größe bei Primefaces Komponenten Web Tier 2
P PrimeFaces DataGrid Click "simulieren" Web Tier 5
J JSF2+primefaces? Web Tier 20
H JSF JSF 2.0 (Primefaces) commandLinks mit action="mypage.xhtml" ohne die URL im Browser zu ändern Web Tier 8
S JSF Primefaces Thema, Css wird geladen, nur die Bilder nicht, bzw Resource wird nicht aufgelöst Web Tier 5
F Primefaces Einstieg Web Tier 1
R Primefaces: No Library Found For This Namespace Web Tier 4
D JSF Ajax mit Facelets (PrimeFaces) Web Tier 4
Z Primefaces sieht grausam aus Web Tier 1
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
Z PrimeFaces (/ JSF) Konfigurationsproblem Web Tier 8
F JSF CommandButton innerhalb eines div´s (mit onClick) Web Tier 2
N JSF CommandButton Daten aus anderem Form auslesen Web Tier 3
M <p:accordionPanel <ui:repeat <p:commandButton Action funktioniert teilweise Web Tier 3
S JSF CommandButton soll keine Request starten! Web Tier 2
K RichFaces CommandButton mit PopUp verwenden Web Tier 2
aze JSF CommandButton:Action wird nicht ausgeführt Web Tier 2
S [JSF] CommandButton/Link ohne Validierung Web Tier 3
P JSF 1.2 commandButton in dataTable Web Tier 2
M JSF: CommandButton übergibt den Parameter nicht Web Tier 3
L JSF: commandButton reagiert nicht Web Tier 10
J JSF - CommandButton keine Action Web Tier 14

Ähnliche Java Themen

Neue Themen


Oben