码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC数据绑定

时间:2020-06-03 09:31:16      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:使用   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的数据绑定:

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

public class CourseList {
    private List<Course> courses;

    public List<Course> getCourses() {
        return courses;
    }

    public void setCourses(List<Course> 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.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.3</version>
    </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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!