2016-07-25 14 views
0

Internet Explorerを使用する必要があり、Java 8、PrimeFaces 5.3、Glassfish 4.xを使用しています。私は、ライブストリームを処理するインタフェースを作成する必要があります。私はストリームが正常に動作している。特定のイベントでページを更新しないようにする

残念ながら、コマンドはネットワーク経由でCGI経由で送信されます(これについては制御できません)。私はmousedownでstartコマンドを送信し、mouseoutまたはmouseupでstopコマンドを送信する必要があります。私は2つの問題に遭遇しました。 p:commandButtonは必要なマウスイベントをサポートしていないため、h:commandButtonを使用しています。私はGoogleを使ってたくさんの検索をしましたが、私は答えを見つけることができません。ここでは、コードの例です:

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

私はevent=""を追加するときに問題が発生しました。 event=""を省略すると、ページが更新されません。これは私が欲しいものです。私はページを全くリフレッシュしたくありません。 event=""を追加すると、私が試してみたようにページが更新されます。

私のオプションは何ですか?イベントは常にnullであることに注意してください。バッキングBeanのメソッドはもともとはActionListenerでした。

+0

提供できるコードはありますか?あなたが試したこと、エラーメッセージを受け取ったことなどを表示する可能性がありますか?この投稿はまだ進まない。 – Toby

答えて

0

<h:commandButton />は、ボタンを防ぐために

(空のリロード現在のページをアクションを残して)デフォルトでPOST経由囲むフォームを送信するために設計されており、アクション属性の結果をロードしているので、あなたのページが更新されますあなたはあなたにタイプ属性値 を追加することができます。

<h:commandButton type="button" /> 

AJAXデフォルトでは、要求の代わりに、POSTを経由して提出するだけに記載されているcomoponentsの更新を行うように設計されている(<p:commandButton />での作業マウスダウンマウスアウトイベントを取得するためのオプションアップデートプロパティ)、それにスタイリングのような機能を利用するには、<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は適切な行動リスナー方法とバッキングBeanです。

+0

これまでのところ、これはうまくいったようです。私はあなたの答えの2番目の部分をチェックする時間がありませんでしたが、私はあなたにとにかにクレジットを与えています。ありがとう。 –