美文网首页
04参数绑定

04参数绑定

作者: RobertLiu123 | 来源:发表于2019-08-02 13:53 被阅读0次

参数绑定(重要)
有以下几种

简单类型
对象类型(简单对象)
包装类绑定(对象里有对象)
复杂类型绑定(数组 list map)

第1节
为了测试,先建立两个实体TabClass.java Student.java

public class TabClass {
    private int classId;
    private String className;
....
}

public class Student {
private int id;
private String name;
private String no;
private String sex;
private TabClass tabClass;
.....
}

页面:

<form action="<%=request.getContextPath()%>/student/add.action" method="post">
  id:<input type="text" name="id" value="123"/><br>
   姓名:<input type="text" name="name" value="陈昊"/><br>
  学号:<input type="text" name="no" value="0910"/><br> 
 sex:<input type="text" name="sex" value="男"/><br>
 <input type="submit" value="提交">
</form>

简单类型

@RequestMapping("/goadd")
public String goadd(){
    return "addstudent";
    
}
@RequestMapping("/add")
public ModelAndView add(int id,String name,String no,String sex){
    System.out.println(id);
    System.out.println(name);
    System.out.println(no);
    System.out.println(sex);
    ModelAndView mav=new ModelAndView("hello");
    return mav;
    
}

后台接到前台参数后,重新命名的情况


@RequestMapping("/add1")
public ModelAndView add1(@RequestParam(value="id") int stuid,
         @RequestParam(value="name") String stuname){
    System.out.println(stuid);
    System.out.println(stuname);
    ModelAndView mav=new ModelAndView("hello");
    return mav;
    
}

解决中文编码问题:web.xml里配置编码过滤器

 <filter>
      <filter-name>CharacterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
     </init-param>
 </filter>
 <filter-mapping>
      <filter-name>CharacterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
 </filter-mapping>

对象类型(简单对象)

@RequestMapping("/add2")
public ModelAndView add2(Student student){
    System.out.println(student.getId());
    ModelAndView mav=new ModelAndView("hello");
    return mav;
} 

第2节
包装类绑定(对象里有对象)
其中的 tabClass是Student实体里的属性名称

 <form action="<%=request.getContextPath()%>/student/add2.action" method="post">
  id:<input type="text" name="id" value="123"/><br>
   姓名:<input type="text" name="name" value="陈昊"/><br>
  学号:<input type="text" name="no" value="0910"/><br> 
 sex:<input type="text" name="sex" value="男"/><br>
 班级id<input type="text" name="tabClass.classId" value="16"/><br>
 班级名称<input type="text" name="tabClass.className" value="java16"/><br>
 <input type="submit" value="提交">
</form>

action不变

@RequestMapping("/add2")
public ModelAndView add2(Student student){
    System.out.println(student.getId());
    ModelAndView mav=new ModelAndView("hello");
    return mav;
}

checkbox绑定
checkbox后台用数组接
前台:

 爱好:<input type="checkbox" name="hobby" value="1"/>篮球
  <input type="checkbox" name="hobby" value="2"/>足球
  <input type="checkbox" name="hobby" value="3"/>排球

后台实体里增加hobby数组

public class Student {
    private int id;
    private String name;
    private String no;
    private String sex;
    private TabClass tabClass;
    private String[] hobby;
......
}

第三节
复杂类型绑定(数组 list map)
数组
接收checkbox类型用数组类型。
批量删除思路:
1)checkbox----->选中------>提交到后台 name
2)后台------>用数组接。 属性名
3)前台name<----->后台数组的属性名
前台代码:

<form action="<%=request.getContextPath()%>/student/del.action" method="post">
 要删除的人员的id
 <input type="checkbox" name="id" value="1"/>李海锋
  <input type="checkbox" name="id" value="2"/>陈昊
  <input type="checkbox" name="id" value="3"/>王晓宇
 <input type="submit" value="提交">
 </form>
后台action
@RequestMapping("/del")
public ModelAndView del(int[] id){
    for(int i:id){
        System.out.println(i);
    }
    ModelAndView mav=new ModelAndView("hello");
    return mav;
}

list
集合类型(list map)的后台不能直接接,需要把集合封装到对象里。
样例代码:

public class ListVo {
  private List<Student> studentList;
......

}

页面:

<form action="<%=request.getContextPath()%>/student/addStuds.action" method="post">
 第一个学生:姓名:<input type="text" name="studentList[0].name" />性别<input type="text" name="studentList[0].sex" /><br>
 第二个学生:<input type="text" name="studentList[1].name" />性别<input type="text" name="studentList[1].sex" /><br>
 <input type="submit" value="提交">
</form>

controller

//批量添加 
@RequestMapping("/addStuds")
public ModelAndView addStuds(ListVo vo){
    for(Student s:vo.getStudentList()){
        System.out.println(s.getName());
    }
    ModelAndView mav=new ModelAndView("hello");
    return mav;
}

相关文章

  • 04参数绑定

    参数绑定(重要)有以下几种 简单类型对象类型(简单对象)包装类绑定(对象里有对象)复杂类型绑定(数组 list m...

  • php pdo 基本操作

    不使用参数绑定: 使用参数绑定:

  • 【Hibernate】session.createQuery的参

    参数绑定: 都支持位置绑定和命名绑定如: Java代码 **基本的参数绑定: **setString();setI...

  • SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器

    第1章 高级参数的绑定 1.1 参数的分类 默认参数绑定:request、response、session、mod...

  • spring cloud-feign使用遇到的坑

    参数绑定的问题: 含有多个参数传递的时候,必须使用@RequestMapping进行参数绑定,参数名称必须和con...

  • 参数绑定

    一 参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controll...

  • 参数绑定

    原始方法获取表单数据 参数绑定 post乱码解决方法 jsp页面中设置date的显示格式 日期格式转换 请求方法限定

  • 参数绑定

    默认支持的参数类型处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值。1.HttpServletRequ...

  • 参数绑定

    对于那种只在一两个地方使用的简单操作,lambda表达式是最有用的。如果我们需要在很多地方使用相同的操作,通常应该...

  • jQuery事件

    一、基础事件 1、绑定事件 bind();参数一:要绑定事件函数的事件名。参数二:要绑定的事件函数(事件函数名),...

网友评论

      本文标题:04参数绑定

      本文链接:https://www.haomeiwen.com/subject/qvlldctx.html