1

次のように、javascript から Spring コントローラー メソッドにリクエストを作成します。

<script language="javascript" type="text/javascript">
          var xmlHttp
          var xmlHttp
          function show()
          {   
              if(typeof XMLHttpRequest != "undefined")
              {
              xmlHttp= new XMLHttpRequest();
               }
              else if (window.ActiveXObject)
              {
                  xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
              }
              if(xmlHttp==null)
              {
                  alert("Browser does not support XMLHTTP Request")
                  return;
              }
              var FAC_LICENSE_NO=document.getElementById("FAC_LICENSE_NO").value;
              //var url="/Final/WEB-INF/jsp/SurrenderViews/Ajax.jsp";
              var url="http://localhost:8080/Final/Ajax.FSu";
              url +="?param1="+FAC_LICENSE_NO;
              alert(url);
              xmlHttp.onreadystatechange = stateChange;
              xmlHttp.open("GET", url, true);
              xmlHttp.send(null);         
            }   
          function stateChange()
          {   
                if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
                {
                    document.getElementById("factoryname").innerHTML=xmlHttp.responseText
                }
         }
    </script>

そして私のコントローラー

public class PhaseTwoFormSurrenderOfLicense extends MultiActionController implements Connections {

     public ModelAndView DataInput(HttpServletRequest request,HttpServletResponse response) 
     {
         return new ModelAndView("SurrenderViews/DataInput");
     } 
     public String Ajax(HttpServletRequest request,HttpServletResponse response) 
     {
           System.out.println("Maritammanafvara");
           String returning="<input type=\"text\" style=\"border: none\" name=\"Factory_name\" readonly=\"readonly\" value=\"HIHI\">";
           return returning;

     } 
}

上記のコードでは、html アンカー タグから DataInput メソッドと Ajax メソッドの両方を呼び出すことができますが、XMLHttpRequest(ajax) オブジェクトから呼び出すことはできません。誰か地域を教えてください。

4

3 に答える 3

1

やってみませんか var url="Ajax.FSu";

それ以外の

var url="http://localhost:8080/Final/Ajax.FSu";

于 2013-01-15T08:11:33.653 に答える
0

methodNameResolverSpringがURLをにルーティングするために使用するあなたのはわかりません。それはあなた自身が作成したMultiActionControllerもののようなものかもしれません。PropertiesMethodNameResolverこれは私のコーディネーターです:

    <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName" value="method" />
</bean>


<bean class="your.controller">
    <property name="methodNameResolver" ref="methodNameResolver" />
</bean>


public class YourController extends MultiActionController

    public ModelAndView abcdef(...){

    }
}

これはurl?method=abcdefgにマップされます

于 2013-01-15T09:05:14.140 に答える
0

ライブラリを使用して AJAX を使用することを考えたことはありますか? jQuery には、このための便利なメソッドがあります: api.jquery.com/category/ajax/

例:

$.ajax("http://localhost:8080/Final/Ajax.FSu").done(function (data) {
    // do stuff with data
}).fail(function () {
    // do stuff when failed
});

また、ローカルホストの部分をハードコードするのではなく、適切な URL をエンコードする必要があります。Spring MVC には、このための便利なタグがあります。

<spring:url value="Final/Ajax.FSu" />

あなたのためにURLを出力し、

<spring:url value="Final/Ajax.FSu" var="yourURL" />

次のように、jsp ファイルで使用するコンテキスト変数に URL を挿入します。

<a href="${yourURL}">Link</a>
于 2013-01-15T09:23:31.987 に答える