1

私の問題は、新しいメッセージがメッセージリストに入れられてテーブルに表示されるたびに欲しいということです。私が直面している問題は、テーブル内の古い行を削除できないため、setInterval が毎秒同じメッセージをテーブルに追加し続けるか、新しいメッセージのみを送信するように HornService をコーディングできることです。ページを離れて戻ってきましたが、リストにメッセージがないため、リストにメッセージがありません。

私のsupport.jspには次のものがあります。

<table id="supportMessages" class="supportTable">
<tr>
  <td class="supportColumn">
    Status  
  </td>
</tr>
</table>

<script type="text/javascript">
$(document).ready(function()
{
  setInterval(ajaxAll, 1000);
  function ajaxAll()
  {
    $.ajax
    ({
       url: "/horn/rest/main/getMessages",
       dataType: "json",
       type: "GET",
       success: function(json)
       {
         for(var i = 0; i < json.length; i++)
         {  
           $('#supportMessages tr:nth-child(1)').after(
              '<tr> <td>' + json[i].status + '</td> '+
              '</tr>');
         }
       }
    });
  }
}
</script>

私の HornService.java には次のものがあります。

static List<Message> messages = new ArrayList<Message>();

@GET
@Path("/getMessages")
public @ResponseBody List<Message> getMessages()
{
  return messages;
}

および Message.java:

public class Message
{
  private String status;
  public String getStatus()
  {
    return status;
  }

  public void setStatus(String status)
  {
    this.status = status;
  }
}
4

1 に答える 1

1

これをJavaScriptに追加したので、すべての行をリロードするだけです:

$.ajax
({
    url:"/horn/rest/main/getMessages",
    dataType: "json",
    type: "GET",
    success: function(json)
    {
       $("#supportMessages tr").remove();
       $('#supportMessages').prepend('<tr> ' +
             '<td class="supportColumn"> Status </td>' +
             '</tr>');
于 2013-05-02T18:16:09.203 に答える