Java 在SpringMVC中使用jQueryAjax从html页面传递值

Java 在SpringMVC中使用jQueryAjax从html页面传递值,java,javascript,jquery,ajax,spring,Java,Javascript,Jquery,Ajax,Spring,我试图在SpringMVC中学习jQueryAjax,我试图将一个值从视图传递到控制器,并在控制台中从控制器打印该值,我想稍后学习如何在控制器中更改该值,然后将其传递到视图,但现在我有一个错误的请求 这是我的控制器方法 @RequestMapping(value = "formNormal", method = RequestMethod.GET) public String formNormal(Model model) { return "formNormal";

我试图在SpringMVC中学习jQueryAjax,我试图将一个值从视图传递到控制器,并在控制台中从控制器打印该值,我想稍后学习如何在控制器中更改该值,然后将其传递到视图,但现在我有一个错误的请求

这是我的控制器方法

@RequestMapping(value = "formNormal", method = RequestMethod.GET)
    public String formNormal(Model model) {

        return "formNormal";
    }

    @RequestMapping(value = "formNormal", method = RequestMethod.POST)
    public @ResponseBody String jsonMethod(@RequestBody String name) {

        String controllerVariable  =  name;
        System.out.println("controller variable value is  " + controllerVariable);

        return controllerVariable;
     }
这是我的formNormal.html页面

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>



   <script type="text/javascript">

        function doAjaxPost() 
        {
            // get the form values
            var name = $('#name').val();
            var json = {"name" : name};

            $.ajax(
            {
                type: "POST",
                url: "formNormal",
                data: JSON.stringify(json),
                cache: false,
                beforeSend: function(xhr) 
                            {
                                xhr.setRequestHeader("Accept", "application/json");  
                                xhr.setRequestHeader("Content-Type", "application/json");  
                            },
                success: function(response) 
                        {
                            alert(response);
                            $('#name').val('');
                        },
                error: function (xhr, ajaxOptions, thrownError) 
                       {
                            alert(xhr.status);
                            alert(xhr.responseText);
                            alert(thrownError);
                        }
            });
        }
        </script>
  <fieldset>
  <legend>Name in view</legend>


        Name in view:   <input type="text" name="name">

        <br>

        <input type="button" value="Add Users" onclick="doAjaxPost()">
  </fieldset>

 <br>

它在警报中打印我的[object object],在我的eclipse控制台中,name变量值是
{}
Try
数据:JSON.stringify(JSON)
。您需要首先将javascript变量转换为JSON字符串。

谢谢,我不再有400错误,但现在变量名为空,我的控制台不打印值,我收到一个警告,提示“name:undefined”,您能确认控制器代码现在获得了值吗?该警报来自您的成功回调,因此我相信您的控制器方法会被调用。你能在success中提醒(response)并让我知道吗?我在succes块中添加了这行代码:
success:function(response){alert(“Name:”+response.Name);$(“#Name”).val(“”);alert(response)},
警报显示
[object object]
,eclipse中的我的控制台显示
{}
是我变量的值。您没有理解我的意思。我要求你们做的是保持警惕(“姓名:“+回复”);而不是警报(“名称:”+response.Name);希望我说得清楚。试试`$.parseJSON(JSON.stringify(response));警惕(反应);'请
`success: function(response) 
                        {

                            alert( "Name: "+response);
                            $('#name').val('');
                        },`