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メソッドでパラメータを介して送信している値を追加しています。アクションクラスメソッドで新しい値を取得できますが、レスポンスを送信しているときにテーブルの代わりにページ全体が表示されます。
おかげで、 サチン