微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring和Ajax

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

实际上有一个逻辑表明表单永远不会提交.但是后来我只能将字符串发送到我的控制器而不是一个对象,因为表单提交被映射到Spring commandBean.

表单接受commandBean

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

调用Spring控制器的Ajax函数

function clinicAjax(){
    alert('Inside Clinic Ajax Method');
    $.ajax({
        url: 'clinicAjax',
        type: 'POST',
        success: alert('Ajax Successful')
    });
}

弹簧控制器方法

@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,它应该可以工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐