jq+ajax提交表单数据

本文详细介绍了 Spring MVC 中的数据绑定原理及使用技巧,包括表单字段与模型对象属性匹配、使用 @RequestParam 注解解决字段名称不一致的问题。同时,还探讨了 Java 中 Integer 类型与 int 基本类型的选用原则。此外,文中还对比了 jQuery 的 AJAX 方法,如 get、post 和 ajax 函数的不同用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

form表单

<form id="formID">
ID:<input type="text" name="id"/>
名称:<input type="text" name="name"/>
<input type="submit" value="提交"/>
</form>

bean对象

public class User(){
    private Integer id;
    private String name;

    public void setId(Integer id){
        this.id = id;
    }
    public void setName(String name){
        this.name= name;
    }
    public Integer getId(){
        return id;
    }
    public Integer getName(){
        return name;
    }
}

Q1:为什么要用Integer而不用int
需要注意的是,如果Controller方法参数中定义的是基本数据类型,但是从页面提交过来的数据为null或者””的话,会出现数据转换的异常。也就是必须保证表单传递过来的数据不能为null或””,所以,在开发过程中,对可能为空的数据,最好将参数数据类型定义成包装类型
参考博文:https://www.cnblogs.com/HD/p/4107674.html

Q2:如果表单属性和模型属性名称不一致,springMVC如何进行转换利用了哪个注解方式
表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑定,如果不一致可以使用@RequestParam注解,@RequestParam??
就好比上面的那个表单,如果输入框的id的name属性值不是id改成inputId和bean也就是模型对象的属性名称不一样应该怎么获取表单提交的id值呢可以参照下面的java代码

@RequestMapping("testRequestParam")    
   public String getData(@RequestParam(value="inputId") int id, HttpServletRequest request) {    
    System.out.println(id);  

    int inputId = Integer.valueOf(request.getParameter("inputId"));  
    System.out.println(inputInt);  

    // ......省略  
    return "index";  
   }  

此时上面输出都是表单提交的id值,这样即使表单参数名和模型参数名不一致也是可以获取到值,但是这样不太方便,特别是参数多的时候,所以最好表单参数名称和模型参数名称一致,这样springMVC就可以直接封装并且不需要再去考虑数据类型的转换.

@RequestMapping("testRequestParam")    
   public String getData(User user) {    
    System.out.println(user.getId());  
    return "index";  
   }

至于为什么springMVC可以实现这个强大的功能,可以看这篇博文
http://www.cnblogs.com/ldcsaa/archive/2012/02/16/2353030.html

参考博文:
http://825635381.iteye.com/blog/2196911

`$("#fromID").param(),
$("#formID").serialize(),
$("#formID").serializeArray()

Q5: $(‘#orgForm’).ajaxForm(options)的用法,挺特别的
首先这是jq关于form表单的插件,他的具体用法归纳是这样,https://www.cnblogs.com/chinali/archive/2012/12/12/2800144.html
就是先下载插件,然后按照他的语法格式进行传值,只是在原来的ajax,form传值上进一步封装而已,至于这样性能比较还不知道
Q6:jq ajax传值的几个函数

$("").get({
url:
data:
datatype://服务端返回的数据类型
callback://回调函数
})

$("").post({
url:
data:
datatype:
callback://回调函数
})

$("").ajax({
method:"get"|"post"
url:""//请求路径
data://需要提交的数据???类型如何写??
async:true|false//是否异步刷新true表示是,默认是true
datatype://服务器返回的数据类型,xml,json,string等
success:function(result){
    //执行成功的操作,result是服务端返回的数据
}
error;function(result){

}
})
另外一种写法:可以把json提出来
var configObj = {
       method   //数据的提交方式:get和post
       url   //数据的提交路劲
       async   //是否支持异步刷新,默认是true
       data    //需要提交的数据
       dataType   //服务器返回数据的类型,例如xml,String,Json等
       success    //请求成功后的回调函数
       error   //请求失败后的回调函数
    }

$.ajax(configObj);//通过$.ajax函数进行调用

参考文章的链接
1.http://blog.youkuaiyun.com/liujiahan629629/article/details/22229669
2.jq API文档http://hemin.cn/jq/
3.http://blog.youkuaiyun.com/zhangdaiscott/article/details/18456215
4.https://www.cnblogs.com/klwyrn/p/5955152.html讲真没多大明白这个博客讲的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值