SpringMVC传入参数

来源:互联网 发布:jquery.min.js的作用 编辑:程序博客网 时间:2024/06/07 05:39

测试使用的类:

public class User {    private String name;// 姓名    private Integer age;// 年龄    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    @Override    public String toString() {        return "User [name=" + name + ", age=" + age + "]";    }    public User(String name, Integer age) {        super();        this.name = name;        this.age = age;    }    public User() {        super();    }}
//用户的加强类public class UserDto {private User user;//用户对象public User getUser() {    return user;}public void setUser(User user) {    this.user = user;}private List<UserScore> list;//参赛项目和得分public List<UserScore> getList() {    return list;}public void setList(List<UserScore> list) {    this.list = list;}@Overridepublic String toString() {    return "UserDto [user=" + user + ", list=" + list + "]";}public UserDto(User user, List<UserScore> list) {    super();    this.user = user;    this.list = list;}public UserDto() {    super();}}
public class UserScore {    private String competitionName;//比赛科目    private Float score;//成绩    public String getCompetitionName() {        return competitionName;    }    public void setCompetitionName(String competitionName) {        this.competitionName = competitionName;    }    public Float getScore() {        return score;    }    public void setScore(Float score) {        this.score = score;    }    @Override    public String toString() {        return "UserScore [competitionName=" + competitionName + ", score=" + score + "]";    }    public UserScore(String competitionName, Float score) {        super();        this.competitionName = competitionName;        this.score = score;    }    public UserScore() {        super();    }}

1.URI 模板模式映射

@RequestMapping("/user")public class UserController{    //页面请求      //http://localhost:8080/springmvc/user/queryUser1/12    @RequestMapping(value="/queryUser1/{id}",method=RequestMethod.GET)    //分析:参数id在url中传递,传给id,method=RequestMethod.GET   url请求必须为get方法    public void queryUser1(@PathVariable String id) {        System.out.println("id:"+id);        //结果:  id:12    }

2参数传递的是user 的属性名
页面

<form action="${pageContext.request.contextPath }/user/queryUser2" method="post">    姓名:<input name="name" value=""/>    <br/>    年龄:<input name="age" value=""/>    <br/>    <input type="submit" value="提交 "/>     </form>

controller

    @RequestMapping("/queryUser2")    public void queryUser2(User user) {        System.out.println(user);        //结果 User [name=aaa, age=12]    }

3参数传递的是user.属性名,需要设置一个userDto对象,其中有个属性是user
页面

<form action="${pageContext.request.contextPath }/user/queryUser3" method="post">    姓名:<input name="user.name" value=""/>    <br/>    年龄:<input name="user.age" value=""/>    <br/>    <input type="submit" value="提交 "/>     </form>

controller

    @RequestMapping("/queryUser3")    public void queryUser3(UserDto userDto ) {        System.out.println(userDto.getUser());        //结果 User [name=ww, age=33]    }

4数组传参
对页面相同name,传过来是就是一个数组,这里以checkbox为例
页面

//<form action="delete">    <table width="">    <tr >    <td>选择</td>    <td>path</td>    <td>姓名</td>    <td>年龄</td>    </tr>    <tr>    <td><input type="checkbox" name="deleteId" value="奥巴马1"/></td>    <td>/springmvc</td>    <td>奥巴马1</td>    <td>45</td>    </tr>    <tr>    <td><input type="checkbox" name="deleteId" value="奥巴马2"/></td>    <td>/springmvc</td>    <td>奥巴马2</td>    <td>45</td>    </tr>    <tr>    <td><input type="checkbox" name="deleteId" value="奥巴马3"/></td>    <td>/springmvc</td>    <td>奥巴马3</td>    <td>45</td>    </tr>    <tr><td><input type="submit" value="批量删除 "/></td> </tr>    </table>    </form>

controller

    @RequestMapping("/delete")    //String[] deleteId 设置多个String【】传参    public void delete(String[] deleteId) {        for (String string : deleteId) {            System.out.print(string+"   ");        }    }    输出:"奥巴马1 "奥巴马2 "奥巴马3

5.list 集合传参
页面

<form action="${pageContext.request.contextPath }/user/list" method="post">    <br/>    姓名:<input name="name" value="董大鹏"/>    <br/>    年龄:<input name="user.age" value="12"/>    <br/>    课程名:<input type="text"name="list[0].competitionName" value="游泳"/>分数:<input type="text"name="list[0].score" value="50"/><br/>    课程名:<input type="text"name="list[1].competitionName" value="攀岩"/>分数:<input type="text"name="list[1].score" value="70"/><br/>    课程名:<input type="text"name="list[2].competitionName" value="羽毛球"/>分数:<input type="text"name="list[2].score" value="90"/><br/>     <input type="submit" value="提交 "/>     </form>

controller

@RequestMapping("/list")        //设置页面传参方式      属性名|字符串,list集合,对象.属性名        public void list(User user,UserDto userDto,String name) {            System.out.println(user );//获取ID            System.out.println(userDto);            System.out.println(name);            //结果            //User [name=董大鹏, age=null]            //UserDto [user=User [name=null, age=12], list=[UserScore [competitionName=游泳, score=50.0], UserScore [competitionName=攀岩, score=70.0], UserScore [competitionName=羽毛球, score=90.0]]]            //董大鹏        }

6.@RequestParam绑定单个请求参数

    @RequestMapping("queryUser4")    //@RequestParam(value="id",defaultValue="34", required=true    //value="id" 请求的参数名字为id    //required=true 表示请求中一定要有相应的参数,否则将报400错误码;    //defaultValue="34" 表示如果请求没有id这个参数是,设置默认请求参数为id=34    //String Userid   用Userid来接收id    public void queryUser4(Model model,@RequestParam(value="id",defaultValue="34", required=true)String Userid,UserDto userDto) {        System.out.println("groupid:"+Userid);        //页面请求  http://localhost:8080/springmvc/user/queryUser4        //结果   groupid:34        //页面请求 http://localhost:8080/springmvc/user/queryUser4?id=10        //结果  groupid:10    }
0 0
原创粉丝点击