1

不明な点がある場合は、遠慮なく質問を編集してください。

現在、私がserver送信したときに状況があり、変更時にresponseメッセージを反映する必要があります。JSPbean class

私のBeanクラスは、

public class Information {

    public LinkedList<String> information = null ;

    public LinkedList<String> getInformation() {
        return information;
    }

    public void setInformation(LinkedList<String> information) {
        this.information = information;
        System.out.println("List is : "+this.information);
    }


}

Threadから応答を取得すると、Bean クラスに影響を与えるために実行されます。server

Class Producer extends Thread{

    LinkedList<String>() list = new LinkedList<String>();
    Information info = new Information();

    public void run() {

        if(ConnectionProtocol.protocol != null){
            try {

                response = ConnectionProtocol.protocol.receive();
                if(response != null){
                    System.out.println("Listener Response : \n"+response+"\n");
                    list.add("EventLinkEventLinkConnected event received..");
                    info.setInformation(list);
                }
            }
        }
    }
}

Bean クラスが影響を受けるか変更されるときに、JSP に情報を表示する必要があります。

また、私は ajax を認識しており、Bean にアクセスしている 5 秒ごとにこの状況を使用しました。Bean にメッセージがない場合は null になります。すべてが正常に機能します。

私のajaxは、

function pingAction(){

    $.ajax(
            {
                type: "post",
                url: "PingAction",
                async:     true,
                data : "userId="+encodeURIComponent(userId)+"&secureKey="+encodeURIComponent(secureKey)+"&sid="+Math.random() ,
                cache:false,
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                scriptCharset: "utf-8" ,
                dataType: "html",

                error: function (xhr, ajaxOptions, thrownError) {
                //alert("status :"+xhr.status+"\nthrownError : "+thrownError+"\nresponseText : "+xhr.responseText);
                xhr.abort();

            },

            success: function( responseData , status){
                //alert("PingAction Response Data : "+ responseData +"\nStatus : "+status);

                if(responseData != "null" && responseData.length != 0  && responseData != null){

                    //Process to view the response in the JSP
                }
            } ,

            complete:function(){
                timer = setTimeout(pingAction, 5000);
            }

            }                           
    );

}

しかし、サーバーがリストに追加されるメッセージを送信しなかった場合、空の応答が返されPingAction()ます.5秒ごとに関数を呼び出しているためです。

良い答えは間違いなく高く評価されます。

4

0 に答える 0