0

次のファイルで構成される Struts2 Web アプリケーションがあります。

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;
} 

文字列「aaa」と「bbb」をAjaxでメソッドに送りたいcontroller.ControllerSln#editProfile()。どうすれば達成できますか?

4

2 に答える 2

1

ControllerSlnには、str1およびstr2と呼ばれるString属性があります。また、それらのgetterおよびsetterは、eclipseによって自動的に作成される必要があります。その後、アクションは次のようになります。http:// localhost:8080 / project / editprofile.action?str1 = "+ str1 +"&str2 = "+ str2; アクションが開始されると、strutsはパラメーターと一致します。これは、名前が次のとおりであるためです。同じ..editProfile()メソッドでprintstr1とstr2を確認できます。

于 2013-01-06T02:20:06.660 に答える
0

単純な JavaScript の場合は、完全な JavaScript Ajax 呼び出しコードを指定してください

<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();
            }
        }

}

于 2013-01-06T03:41:00.553 に答える