• springMVC数据绑定


    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;
        }
  • 相关阅读:
    高性能网站建设之 MS Sql Server数据库分区
    Sql Server 分区演练
    数据库的优化措施 索引优化
    TabHost两种不同的实现方式
    Call requires API level 7 (current min is 1):(问题解决)
    Android特效 五种Toast详解
    SQLite使用
    android下db-journal文件作用
    关于android通过shell修改文件权限的学习
    关于android写入SD卡数据的学习代码
  • 原文地址:https://www.cnblogs.com/shouyaya/p/13034868.html
Copyright © 2020-2023  润新知