Spring和Ajax

Spring和Ajax,ajax,spring,spring-mvc,Ajax,Spring,Spring Mvc,我可以将spring表单标记库与Ajax结合使用吗? 我无法在控制器内检索表单输入参数。它们总是null 事实上,有一个逻辑是表单永远不会提交。但是,我只能向控制器发送字符串,而不能像表单提交那样向对象发送字符串,表单提交映射到SpringcommandBean 接受命令bean的表单 <form:form method="POST" commandName="clinicBean"> Clinic Name: <form:input path="name" type=

我可以将spring表单标记库与Ajax结合使用吗? 我无法在控制器内检索表单输入参数。它们总是null

事实上,有一个逻辑是表单永远不会提交。但是,我只能向控制器发送字符串,而不能像表单提交那样向对象发送字符串,表单提交映射到SpringcommandBean

接受命令bean的表单

<form:form method="POST" commandName="clinicBean">
    Clinic Name: <form:input path="name" type="text" /><br/>
    Clinic Address: <form:input path="address" type="text"/><br/>
    <input type="button" value="Create Clinic" onclick="clinicAjax()"/>
</form:form>
弹簧控制器方法:

@RequestMapping(value="clinicAjax",method=RequestMethod.POST)


 public @ResponseBody String createClinic(@ModelAttribute("clinicBean") Clinic clinic){
        System.out.println("Ajax call successful");
        System.out.println(clinic);
        System.out.println(clinic.getName());
        System.out.println(clinic.getAddress());
        return "SUCCESS";
    }

在System.out.println()语句中,它总是得到null

问题在于,您没有在任何地方序列化表单,因此表单不会被发送到服务器

将javascript代码更改为:

function clinicAjax(){
    alert('Inside Clinic Ajax Method');
    $.ajax({
        url: 'clinicAjax',
        data: yourFormElement.serialize(); /* i.e. $('#formId').serialize(); */
        type: 'POST',
        success: alert('Ajax Successful')
    });
}

用表示表单的jQuery对象替换
yourFormElement
,它应该可以工作。

添加一些相关代码会有很大帮助。是否可以在不刷新页面的情况下使用此配置?
function clinicAjax(){
    alert('Inside Clinic Ajax Method');
    $.ajax({
        url: 'clinicAjax',
        data: yourFormElement.serialize(); /* i.e. $('#formId').serialize(); */
        type: 'POST',
        success: alert('Ajax Successful')
    });
}