2016-07-25 19 views
0

Wir sind verpflichtet, Internet Explorer zu verwenden, und wir verwenden Java 8, PrimeFaces 5.3, mit Glassfish 4.x. Ich muss eine Schnittstelle schreiben, die sich mit Livestream beschäftigt. Ich habe den Stream gut funktioniert.Verhindern der Seitenaktualisierung mit bestimmten Ereignissen

Leider werden die Befehle über CGI über das Netzwerk gesendet (wir haben keine Kontrolle darüber). Ich muss den Startbefehl bei mousedown senden und einen stop-Befehl bei mouseout oder mouseup senden. Ich habe 2 Probleme kennengelernt. Ich verwende h: commandButton, weil p: commandButton die Mausereignisse, die ich brauche, nicht unterstützt. Ich habe viel über Google gesucht, kann aber keine Antworten finden. Hier ist ein Beispiel für den Code:

<h:commandButton id="right" value="▶"> 
    <f:ajax event="mousedown" listener="#{backingBean.menubar.processAction('right', event)}" render="@none" /> 
</h:commandButton> 

Das Problem tritt auf, wenn ich event="" hinzufügen. Wenn ich die event="" weglassen, wird die Seite nicht aktualisiert. Das ist was ich will. Ich möchte nicht, dass die Seite überhaupt aktualisiert wird. Wenn ich die event="" hinzufüge, wird die Seite aktualisiert, egal was ich versuche zu versuchen.

Was sind meine Optionen? Ich sollte beachten, dass das Ereignis immer null ist. Die Methode in der Backing-Bean war ursprünglich ein ActionListener.

+0

Gibt es noch weiteren Code, den Sie bereitstellen können? Möglicherweise zeigen Sie, was Sie versucht haben, welche Fehlermeldungen erhalten Sie usw.? Dieser Beitrag bietet nicht viel zu tun. – Toby

Antwort

0

Ihre Seite aktualisiert, weil <h:commandButton /> ausgelegt ist, die umschließende Form über POST von Ausfall- und laden das Ergebnis Aktion Attribut (Abfahrt Aktion leer Neuladen der aktuellen Seite)

Um zu verhindern, den Knopf einreichen der Übermittlung können Sie das Typ Attribut mit Wert Schaltfläche hinzufügen.

<h:commandButton type="button" /> 

Eine Option mit <p:commandButton /> Arbeits Veranstaltungen zu bekommen mousedown- und mouseOut (die über stattdessen standardmäßig ausgelegt ist, eine AJAX Anfrage zu tun POST einzureichen und nur comoponents in den aufgelistet Aktualisierung Update Eigentum) und von seinen Fähigkeiten wie Styling zu profitieren, ist in Kombination mit <p:remoteCommand />.

<h:form> 
    <p:commandButton 
    value="click me" 
    onmousedown="mousedown();" 
    onmouseout="mouseout();" 
    /> 
    <p:remoteCommand 
    name="mousedown" 
    actionListener="#{commandButtonView.onMousedown}" 
    /> 
    <p:remoteCommand 
    name="mouseout" 
    actionListener="#{commandButtonView.onMouseout}" 
    /> 
</h:form> 

commandButtonView wird die Trägerbohne mit geeigneten Maßnahmen Listener-Methoden.

+0

Bis jetzt scheint dies zu funktionieren. Ich habe keine Zeit gehabt, den zweiten Teil Ihrer Antwort zu überprüfen, aber ich gebe Ihnen trotzdem Kredit. Vielen Dank. –