SpringMVC数据绑定三(数组)

这里数组主要以Integer和String为例
1、不使用ajax提交的数组(使用name属性)
前端jsp代码:

   <br>
   <label>数组</label>
   <form action="arrayto.do" method="post">
      <label>array1</label> <input type="text" id="array1" name="ss">
      <label>array1</label> <input type="text" id="array1" name="ss">
      <label>array1</label> <input type="text" id="array1" name="ss">
      <label>array1</label> <input type="text" id="array1" name="ss">
      <input type="submit"   >
   </form>
   <br>

后台Controller代码:

  @RequestMapping(value="arrayto.do")
  @ResponseBody
  public String arrayto( Integer ss[]){
      for(Integer s :ss)
          System.out.println(s);
      return "y";
  }

这里同样是使用文本标签属性name来作为数据绑定的依据,根据jsp页面中name值(”ss”)与后台一样数组名就完成数据绑定。使用这种方法最简单实现数据绑定。
2、使用ajax提交数组
前端jsp页面代码:

   <label>ajax数组</label>

      <label>array1</label> <input type="text" id="a1" name="ss">
      <label>array1</label> <input type="text" id="a2" name="ss">
      <label>array1</label> <input type="text" id="a3" name="ss">
      <label>array1</label> <input type="text" id="a4" name="ss">
      <input   type="button" onclick="subArray()" value="提交" >
   <br>

js文件代码:

function subArray(){
    var array=[];
    var sh;
    sh=$("input[name='ssajax']");
    for(var i=0;i<sh.length;i++){
        array.push(sh[i].value)
        console.log("第"+i+" :"+array[i]);
    }

    array.push($("#a1").val());
    array.push($("#a2").val());
    array.push($("#a3").val());
    array.push($("#a4").val());
    $.ajax({
        url:'array.do',
        type:'get',
        data:{ss:array},
        success:function(){
            alert("success");
        },
        error:function(){
            alert("error");
        }
    });

后台controller代码:

  @RequestMapping(value="array.do")
  @ResponseBody
  public String array(@RequestParam(value = "ss[]") String ss[]){
      for(String s :ss)
          System.out.println(s);
      return "y";
  }

这里需要指出的是使用ajax传输的时候,使用json格式传输,需要在后台指定绑定参数这里使用@RequestParam(value=”ss[]”)来指明接收的数组参数名。还有一点就是js代码中的ajax数据部分是{ss:array},使用json格式传输;并指定后来key值ss。到这里就可以方便传递数组。

Spring MVC 后台处理 JSON 数组通常涉及到两个关键部分:控制器(Controller)接收到请求,并将数据绑定到模型(Model),然后视图(View)负责渲染结果。 1. 创建Controller: 在Spring MVC中,你可以创建一个RESTful风格的Controller,比如使用`@RestController`注解。这个类可以有一个HTTP方法(如`@PostMapping`或`@GetMapping`),用于接受POST请求并解析JSON数据。 ```java @RestController public class YourController { @PostMapping("/api/your-endpoint") public ResponseEntity<?> handleJsonArray(@RequestBody JSONArray jsonArray) { // 对jsonArray进行操作... // 然后返回响应... return new ResponseEntity<>(result, HttpStatus.OK); } } ``` 在这里,`@RequestBody`表示从请求主体中获取数据,`JSONArray`是来自Spring自带的`org.springframework.http.converter.json`包的,它用来解析接收到的JSON字符串为Java的数组。 2. 数据绑定: 接收的JSON数据需要转换为Java对象,例如一个自定义的实体类(通常是泛型的List)。如果数组元素对应于实体类的实例,可以用Jackson库等帮助转换。 ```java dataClass Item { private String name; // getters and setters } List<Item> items = new ArrayList<>(); for (Object obj : jsonArray) { Item item = new ObjectMapper().readValue(obj.toString(), Item.class); items.add(item); } ``` 3. 返回响应: 最后,你需要构建一个响应对象,包含处理后的数据,可以使用`ResponseEntity`来携带HTTP状态码和内容。 4. 测试:使用curl或Postman之类的工具发送POST请求,附带JSON数组,验证是否能成功接收并处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值