springMVC数据绑定

2020-12-26 19:28

阅读:691

标签:使用   bin   abi   input   hand   关于   depend   org   private   

1.数据绑定的定义

技术图片

 

 

 2.常用的数据绑定类型

技术图片

 

 

 3.具体使用方法:在搭建好springMVC环境下添加注解@RequestParam(value = "表单对应的name") 即可完成数据绑定

package com.yzy.controller;


import com.yzy.entity.Course;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class dataBindHandler {

    //基本数据类型
    @RequestMapping(value = "/baseType")
    @ResponseBody
    public String baseType(@RequestParam(value = "id") int id){
        return "id:"+id;
    }

    //包装类
    @RequestMapping(value = "/packageType")
    @ResponseBody
    public String packageType(@RequestParam(value = "id") Integer id){
        return "id:"+id;
    }

    //字符串数组
    @RequestMapping(value = "/arrayType")
    @ResponseBody
    public String arrayType(String[] name){
        StringBuffer stringBuffer=new StringBuffer();
        for(String str:name){
            stringBuffer.append(str).append(" ");
        }
        return stringBuffer.toString();
    }

    //对象(表单的name值与对象的属性名对应即可完成对象的封装)
    @RequestMapping("/pojoType")
    public ModelAndView pojoType(Course course){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("course",course);
        modelAndView.setViewName("index");
        return modelAndView;
    }

关于对象的相应页面的调用数据:

                        td>${course.id}td>    --取值方式--%>
                        td>${course.name}td>
                        td>${course.price}td>
                        td>${course.author.name}td>   --级联对象的取值--%>

 

集合与json的数据绑定:

  集合的数据绑定得先定义一个集合对应的实体类:

public class CourseList {
    private List courses;

    public List getCourses() {
        return courses;
    }

    public void setCourses(List courses) {
        this.courses = courses;
    }
}

  绑定数据类型为list时,表单name值的定义方式(set与list一样):

 input type="text" class="form-control" name="courses[0].id" placeholder="请输入课程编号">

  绑定数据类型为map时,表单name值的定义方式:

input type="text" class="form-control" name="courses[‘one‘].id" placeholder="请输入课程编号">

  方法的编写(list、map与set一致):

@RequestMapping(value = "/listType")
    public ModelAndView listType(CourseList courseList){
        for(Course course:courseList.getCourses()){
            courseDAO.add(course);
        }
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
        modelAndView.addObject("courses",courseDAO.getAll());
        return modelAndView;
    }

对于json的数据绑定,springMVC没有对应的方法,需导入json解析jar包:jackson-databind,并且在spring的配置文件中配置相应的数据绑定解析器

    dependency>
      groupId>com.fasterxml.jackson.coregroupId>
      artifactId>jackson-databindartifactId>
      version>2.8.3version>
    dependency>
    mvc:annotation-driven>
        mvc:message-converters>
            bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">bean>
        mvc:message-converters>
    mvc:annotation-driven>

  方法的编写:

    @RequestMapping(value = "/jsonType")
    @ResponseBody
    public  Course jsonType(@RequestBody  Course course){  //通过解析request中的json数据,生成对应的实体对象
        course.setPrice(course.getPrice()+100);
        return course;
    }

 

springMVC数据绑定

标签:使用   bin   abi   input   hand   关于   depend   org   private   

原文地址:https://www.cnblogs.com/shouyaya/p/13034868.html


评论


亲,登录后才可以留言!