2013-01-06 88 views
0

我有由下列文件的一個Struts2的Web應用程序:如何通過Ajax來發送請求參數Struts2的action類

member.jsp

<script type="text/javascript">  
    String str1 = "aaa"; 
    String str2 = "bbb"; 

    xmlhttp.open("GET", "http://localhost:8080/project/editprofile.action", true); 
    xmlhttp.send(null); 
</script> 

struts.xml

<action name="editprofile" method="editProfile" class="controller.ControllerSln"> 
    <result name="success" type="stream"> 
     <param name="contentType">text/html</param> 
     <param name="inputName">inputStream</param> 
    </result> 
</action> 

ControllerSln.java

public String editProfile() throws UnsupportedEncodingException { 
    return SUCCESS; 
} 

我想通過Ajax將字符串「aaa」和「bbb」發送到controller.ControllerSln#editProfile()方法。我怎樣才能實現它?

+0

我不是你nderstand。爲什麼不能在請求中將它們作爲參數傳遞? –

+0

這是我的第一個Web項目,我的信息是基本的,我在網上搜索過,但我無法理解,並將它們應用於我的項目,所以我在這裏問過。 – selentoptas

+0

但我還是不明白。 –

回答

1

您的ControllerSln具有名爲str1和str2的字符串屬性。它們的getter和setter必須由eclipse自動創建。 之後,你的動作必須是這樣的:http:// localhost:8080/project/editprofile.action?str1 =「+ str1 +」& str2 =「+ str2; 當你的動作開始時,struts會匹配參數,因爲他們的名字是一樣的.. 你可以看到打印str1和str2的您editProfile()方法。

+1

你怎麼知道他在使用Eclipse? –

+0

我們正在與Sedat Kurt溝通,所以他知道我爲我的java項目使用了eclipse。謝謝你的解決方案,它清楚地工作。 – selentoptas

0

給出完整的JavaScript調用Ajax代碼,如果它是笑着的JavaScript

<script type="text/javascript"> 
     function updateProfile() 
     { 
      var xmlhttp; 
      if (window.XMLHttpRequest) 
      { 
       xmlhttp=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      if (typeof xmlhttp == "undefined") 
      { 
       ContentDiv.innerHTML="<h1>XMLHttp cannot be created!</h1>"; 
      } 

      else{ 

       var str1 = "aaa"; 
       var str2 = "bbb"; 

       var str='?str1='+str1+'&str2='+str2; 
       var query='editProfile'+str; 
//str1 and str2 should be there at Controller.ControllerSln to fetch data from ajax 
       xmlhttp.open("GET",query,true); 
       xmlhttp.onreadystatechange=function() 
       { 
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        { 
         document.getElementById("UpdatedProfile").innerHTML=xmlhttp.responseText; 
         //UpdatedProfile div where u want to display result of ajax 
        } 
       } 

       xmlhttp.send(); 
      } 
     } 

}

+0

在上面的解決方案明確Manish,我也保存了你的解決方案。謝謝你的努力。 – selentoptas

相關問題