2012-01-03 1 views
0

Struts2でデータテーブルを作成しました。また、このテーブルにレコードを追加する機能もあります。レコードが挿入された後、ページがリフレッシュされ、テーブルがリフレッシュされます。 私はこの目的のためにAjaxを使用しようとしましたが、私たちが挿入した新しい値をActionクラスのrequestパラメータに送信しようとしましたが、レスポンスではテーブルがリフレッシュされています。Ajaxを使用してStruts2データテーブルをリフレッシュする

私のAjaxの機能は次のとおりです。私のStruts.xmlで

function reloadTable(){ 

var ajaxRequest; 
    try { 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } 
    catch (e) 
    { 
     // Internet Explorer Browsers 
     try { 
       ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
        catch (e) 
       { 
       try { 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
       catch (e) 
       { 
           alert("Your browser has no AJAX Support!"); 
        return false; 
       } 
     } 
     } 
     var elem1 = document.getElementById('host0'); 
     var elem2 = document.getElementById('ip0'); 
     var elemTable = document.getElementById('hostTable'); 
     //alert(indexSelected); 
     //alert(document.getElementById(elem).options[indexSelected].value); 
    var url = "insertTable.action"; 
    ajaxRequest.open("POST", url, true); 
    ajaxRequest.onreadystatechange = function() 
    { 
     try 
     { 
       if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { 
         var res = ajaxRequest.responseText; 
         if (res) 
         { 
           //alert("hi"+res.greeting); 
           document.getElementById("hostTable").innerHTML = res; 
           //adjustTable(); 
         } 
       } 
     } 
     catch (e) 
     { 

     } 
    }; 
    //alert(selectedCountry); 
    ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    var hostName = elem1.value; 
    var ipAddress = elem2.value; 
    //alert("AJAX CALL"+elem1.value+elem2.value); 
    //ajaxRequest.send("hostName="+elem1.value+"&ipAddress="+elem2.value); 
    ajaxRequest.send("hostName="+hostName+"&ipAddress="+ipAddress); 
    //ajaxRequest.send(null); 
} 

コンテンツです:私のアクションクラスで

<action name="insertTable" method="insertNewData" class="action.LoginAction"> 
     <result name="success">/success.jsp</result> 
    </action> 

方法:

public String insertNewData(){ 
    populateList(); 
    System.out.println("Hi"+getHostName()+getIpAddress()); 
    userNameList.add(new UserType(hostName,ipAddress)); 
    return SUCCESS; 
} 

今私はリストは人口たいですactionClassメソッド内でこのAjax呼び出しによってテーブルに反映されます。このメソッドでは、Ajaxメソッドでパラメータを介して送信している値を追加しています。アクションクラスメソッドで新しい値を取得できますが、レスポンスを送信しているときにテーブルの代わりにページ全体が表示されます。

おかげで、 サチン

答えて

0

レコードが挿入された後、我々は テーブルがリフレッシュ取得するためにページを更新しています。

ページ全体を更新したくないようですか?その場合は、Struts2 Jquery Pluginを使用することをお勧めします。 Grid showcaseはあなたがしたいことをまったく行いません。 さらに詳しい例として、Online Examplesにアクセスして、より具体的なものが必要な場合はcanの例をリクエストできます。

関連する問題